- big refactor for scheduler.
This commit is contained in:
@@ -34,6 +34,8 @@ const (
|
||||
JX_DELIVERY_STATUS_DELIVERY_FAIL = 5 //投递失败
|
||||
JX_DELIVERY_STATUS_DELIVERY_DONE = 6 //已完成
|
||||
JX_DELIVERY_STATUS_DELIVERY_CANCEL = 7 //已取消
|
||||
|
||||
JX_STATUS_UNKNOWN = -100
|
||||
)
|
||||
|
||||
const (
|
||||
@@ -84,7 +86,7 @@ func legacyMapOrderStatus(orderStatus int) (retVal int8) {
|
||||
retVal = JX_ORDER_STATUS_PICKING
|
||||
case model.OrderStatusDelivering:
|
||||
retVal = JX_ORDER_STATUS_DELIVERING
|
||||
case model.OrderStatusDelivered:
|
||||
case model.OrderStatusDelivered, model.OrderStatusFinished:
|
||||
retVal = JX_ORDER_STATUS_DELIVERY_DONE
|
||||
case model.OrderStatusAdjust:
|
||||
retVal = JX_ORDER_STATUS_ADJUST
|
||||
@@ -92,6 +94,8 @@ func legacyMapOrderStatus(orderStatus int) (retVal int8) {
|
||||
retVal = JX_ORDER_STATUS_EXCEPTION_APPLY
|
||||
case model.OrderStatusCanceled:
|
||||
retVal = JX_ORDER_STATUS_CANCEL
|
||||
default:
|
||||
retVal = JX_STATUS_UNKNOWN
|
||||
}
|
||||
return retVal
|
||||
}
|
||||
@@ -112,6 +116,8 @@ func legacyMapWaybillStatus(status int) (retVal int8) {
|
||||
retVal = JX_DELIVERY_STATUS_DELIVERY_CANCEL
|
||||
case model.WaybillStatusFailed:
|
||||
retVal = JX_DELIVERY_STATUS_DELIVERY_FAIL
|
||||
default:
|
||||
retVal = JX_STATUS_UNKNOWN
|
||||
}
|
||||
return retVal
|
||||
}
|
||||
@@ -132,8 +138,8 @@ func (c *OrderController) legacyWriteJxOrder(order *model.GoodsOrder, db orm.Orm
|
||||
|
||||
db.Begin()
|
||||
if isDelFirst {
|
||||
db.Raw("DELETE FROM "+globals.JxorderTableName+" WHERE order_id = ?", utils.Str2Int64(order.VendorOrderID))
|
||||
db.Raw("DELETE FROM "+globals.JxorderskuTableName+" WHERE order_id = ?", utils.Str2Int64(order.VendorOrderID))
|
||||
db.Raw("DELETE FROM "+globals.JxorderTableName+" WHERE order_id = ?", utils.Str2Int64(order.VendorOrderID)).Exec()
|
||||
db.Raw("DELETE FROM "+globals.JxorderskuTableName+" WHERE order_id = ?", utils.Str2Int64(order.VendorOrderID)).Exec()
|
||||
}
|
||||
|
||||
jxorder := &legacymodel.Jxorder2{
|
||||
@@ -210,81 +216,87 @@ func (c *OrderController) legacyWriteJxOrder(order *model.GoodsOrder, db orm.Orm
|
||||
}
|
||||
|
||||
func (c *OrderController) legacyJxOrderStatusChanged(status *model.OrderStatus, db orm.Ormer) (err error) {
|
||||
if db == nil {
|
||||
db = orm.NewOrm()
|
||||
}
|
||||
jxorder := &legacymodel.Jxorder2{
|
||||
OrderId: utils.Str2Int64(status.VendorOrderID),
|
||||
}
|
||||
if err = db.Read(jxorder, "OrderId"); err == nil {
|
||||
utils.CallFuncLogError(func() error {
|
||||
jxorder.OrderStatus = legacyMapOrderStatus(status.Status)
|
||||
jxorder.OrderStatusTime = utils.Time2Str(status.StatusTime)
|
||||
updateFields := []string{
|
||||
"OrderStatus",
|
||||
"OrderStatusTime",
|
||||
}
|
||||
if status.Status >= model.OrderStatusEndBegin {
|
||||
jxorder.DeliveryFinishTime = utils.Time2Str(status.StatusTime)
|
||||
updateFields = append(updateFields, "DeliveryFinishTime")
|
||||
}
|
||||
_, err = db.Update(jxorder, updateFields...)
|
||||
|
||||
db.Raw(`
|
||||
orderStatus := legacyMapOrderStatus(status.Status)
|
||||
if orderStatus != JX_STATUS_UNKNOWN {
|
||||
if db == nil {
|
||||
db = orm.NewOrm()
|
||||
}
|
||||
jxorder := &legacymodel.Jxorder2{
|
||||
OrderId: utils.Str2Int64(status.VendorOrderID),
|
||||
}
|
||||
if err = db.Read(jxorder, "OrderId"); err == nil {
|
||||
utils.CallFuncLogError(func() error {
|
||||
jxorder.OrderStatus = orderStatus
|
||||
jxorder.OrderStatusTime = utils.Time2Str(status.StatusTime)
|
||||
updateFields := []string{
|
||||
"OrderStatus",
|
||||
"OrderStatusTime",
|
||||
}
|
||||
if status.Status >= model.OrderStatusEndBegin {
|
||||
jxorder.DeliveryFinishTime = utils.Time2Str(status.StatusTime)
|
||||
updateFields = append(updateFields, "DeliveryFinishTime")
|
||||
}
|
||||
_, err = db.Update(jxorder, updateFields...)
|
||||
if orderStatus == JX_ORDER_STATUS_DELIVERY_DONE {
|
||||
db.Raw(`
|
||||
UPDATE `+globals.JxorderTableName+` t1
|
||||
JOIN waybill t2 ON t2.vendor_order_id = t1.order_id AND t2.status = 105
|
||||
SET t1.delivery_price = IF(t2.waybill_vendor_id = 102, t2.desired_fee/100, t1.delivery_price),
|
||||
t1.delivery_price1 = IF(t2.waybill_vendor_id = 101, t2.desired_fee/100, t1.delivery_price1)
|
||||
WHERE t1.order_id = ?
|
||||
`, jxorder.OrderId).Exec()
|
||||
|
||||
return err
|
||||
}, "legacyJxOrderStatusChanged")
|
||||
} else {
|
||||
globals.SugarLogger.Infof("read legacyJxOrder orderID:%d error:%v, ", jxorder.OrderId, err)
|
||||
}
|
||||
return err
|
||||
}, "legacyJxOrderStatusChanged")
|
||||
} else {
|
||||
globals.SugarLogger.Infof("read legacyJxOrder orderID:%d error:%v, ", jxorder.OrderId, err)
|
||||
}
|
||||
}
|
||||
return err
|
||||
}
|
||||
|
||||
func (c *WaybillController) legacyWaybillStatusChanged(bill *model.Waybill, db orm.Ormer) (err error) {
|
||||
if db == nil {
|
||||
db = orm.NewOrm()
|
||||
}
|
||||
jxorder := &legacymodel.Jxorder2{
|
||||
OrderId: utils.Str2Int64(bill.VendorOrderID),
|
||||
}
|
||||
if err = db.Read(jxorder, "OrderId"); err == nil {
|
||||
utils.CallFuncLogError(func() error {
|
||||
updateFields := []string{
|
||||
"DeliveryCarrierNo",
|
||||
"DeliveryCarrierName",
|
||||
"DeliveryManNo",
|
||||
"DeliveryManName",
|
||||
"DeliveryManPhone",
|
||||
"DeliveryBillNo",
|
||||
"DeliveryStatus",
|
||||
}
|
||||
// jxorder.DeliveryPackageWeight
|
||||
jxorder.DeliveryCarrierNo = VENDOR_ID2CARRIER_NO[bill.WaybillVendorID]
|
||||
jxorder.DeliveryCarrierName = CARRIERS_NAMES[jxorder.DeliveryCarrierNo]
|
||||
jxorder.DeliveryManNo = bill.CourierMobile
|
||||
jxorder.DeliveryManName = bill.CourierName
|
||||
jxorder.DeliveryManPhone = bill.CourierMobile
|
||||
jxorder.DeliveryBillNo = bill.VendorWaybillID
|
||||
jxorder.DeliveryStatus = legacyMapWaybillStatus(bill.Status)
|
||||
// jxorder.DeliveryConfirmTime
|
||||
if bill.Status == model.WaybillStatusNew {
|
||||
updateFields = append(updateFields, "DeliveryStartTime")
|
||||
jxorder.DeliveryStartTime = utils.Time2Str(bill.StatusTime)
|
||||
} else if bill.Status >= model.WaybillStatusEndBegin {
|
||||
jxorder.DeliveryFinishTime = utils.Time2Str(bill.StatusTime)
|
||||
updateFields = append(updateFields, "DeliveryFinishTime")
|
||||
}
|
||||
_, err = db.Update(jxorder, updateFields...)
|
||||
return err
|
||||
}, "legacyJxOrderStatusChanged")
|
||||
} else {
|
||||
globals.SugarLogger.Infof("read legacyJxOrder, orderID:%d error:%v", jxorder.OrderId, err)
|
||||
deliveryStatus := legacyMapWaybillStatus(bill.Status)
|
||||
if deliveryStatus != JX_STATUS_UNKNOWN {
|
||||
if db == nil {
|
||||
db = orm.NewOrm()
|
||||
}
|
||||
jxorder := &legacymodel.Jxorder2{
|
||||
OrderId: utils.Str2Int64(bill.VendorOrderID),
|
||||
}
|
||||
if err = db.Read(jxorder, "OrderId"); err == nil {
|
||||
utils.CallFuncLogError(func() error {
|
||||
updateFields := []string{
|
||||
"DeliveryCarrierNo",
|
||||
"DeliveryCarrierName",
|
||||
"DeliveryManNo",
|
||||
"DeliveryManName",
|
||||
"DeliveryManPhone",
|
||||
"DeliveryBillNo",
|
||||
"DeliveryStatus",
|
||||
}
|
||||
// jxorder.DeliveryPackageWeight
|
||||
jxorder.DeliveryCarrierNo = VENDOR_ID2CARRIER_NO[bill.WaybillVendorID]
|
||||
jxorder.DeliveryCarrierName = CARRIERS_NAMES[jxorder.DeliveryCarrierNo]
|
||||
jxorder.DeliveryManNo = bill.CourierMobile
|
||||
jxorder.DeliveryManName = bill.CourierName
|
||||
jxorder.DeliveryManPhone = bill.CourierMobile
|
||||
jxorder.DeliveryBillNo = bill.VendorWaybillID
|
||||
jxorder.DeliveryStatus = deliveryStatus
|
||||
// jxorder.DeliveryConfirmTime
|
||||
if bill.Status == model.WaybillStatusNew {
|
||||
updateFields = append(updateFields, "DeliveryStartTime")
|
||||
jxorder.DeliveryStartTime = utils.Time2Str(bill.StatusTime)
|
||||
} else if bill.Status >= model.WaybillStatusEndBegin {
|
||||
jxorder.DeliveryFinishTime = utils.Time2Str(bill.StatusTime)
|
||||
updateFields = append(updateFields, "DeliveryFinishTime")
|
||||
}
|
||||
_, err = db.Update(jxorder, updateFields...)
|
||||
return err
|
||||
}, "legacyJxOrderStatusChanged")
|
||||
} else {
|
||||
globals.SugarLogger.Infof("read legacyJxOrder, orderID:%d error:%v", jxorder.OrderId, err)
|
||||
}
|
||||
}
|
||||
return err
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user