- refactor.
This commit is contained in:
@@ -66,7 +66,7 @@ func (c *OrderController) getOrderInfo(msg *jdapi.CallbackOrderMsg) (order *mode
|
||||
ConsigneeLng: controller.StandardCoordinate2Int(utils.MustInterface2Float64(result["buyerLng"])),
|
||||
CoordinateType: controller.CoordinateTypeMars,
|
||||
VendorStatus: msg.StatusID,
|
||||
OrderCreatedAt: utils.Str2Time(result["orderPurchaseTime"].(string)),
|
||||
OrderCreatedAt: utils.Str2Time(result["orderStartTime"].(string)),
|
||||
OriginalData: string(utils.MustMarshal(result)),
|
||||
}
|
||||
// discounts := result["discount"].(map[string]interface{})
|
||||
|
||||
@@ -90,18 +90,14 @@ func (c *OrderController) OnOrderNew(order *model.GoodsOrder, orderSkus []*model
|
||||
order.Status = OrderStatusFailed
|
||||
}
|
||||
})
|
||||
|
||||
err = c.updateOrderOtherInfo(order, db)
|
||||
if err == nil {
|
||||
err = c.updateOrderSkuOtherInfo(orderSkus, db)
|
||||
if err == nil {
|
||||
if err = c.updateOrderOtherInfo(order, db); err == nil {
|
||||
if err = c.updateOrderSkuOtherInfo(orderSkus, db); err == nil {
|
||||
db.Begin()
|
||||
// globals.SugarLogger.Debugf("new order:%v", order)
|
||||
order.OrderFinishedAt = DefaultTimeValue
|
||||
order.ID = 0
|
||||
created, _, err2 := db.ReadOrCreate(order, "VendorOrderID", "VendorID")
|
||||
err = err2
|
||||
if err == nil {
|
||||
if err = err2; err == nil {
|
||||
c.orderMap.Store(ComposeUniversalOrderID(order.VendorOrderID, order.VendorID), order.ID)
|
||||
if created {
|
||||
sql := "INSERT INTO order_sku(vendor_order_id, vendor_id, count, sku_id, vendor_sku_id, sku_name, shop_price, sale_price, weight, order_created_at) VALUES"
|
||||
@@ -111,8 +107,7 @@ func (c *OrderController) OnOrderNew(order *model.GoodsOrder, orderSkus []*model
|
||||
params = append(params, sku.VendorOrderID, sku.VendorID, sku.Count, sku.SkuID, sku.VendorSkuID, sku.SkuName, sku.ShopPrice, sku.SalePrice, order.Weight, order.OrderCreatedAt)
|
||||
}
|
||||
sql = sql[:len(sql)-1] + ";"
|
||||
_, err = db.Raw(sql, params...).Exec()
|
||||
if err != nil {
|
||||
if _, err = db.Raw(sql, params...).Exec(); err != nil {
|
||||
db.Rollback()
|
||||
baseapi.SugarLogger.Infof("insert order_sku error:%v", err)
|
||||
} else {
|
||||
@@ -137,9 +132,10 @@ func (c *OrderController) OnOrderNew(order *model.GoodsOrder, orderSkus []*model
|
||||
func (c *OrderController) OnOrderAdjust(order *model.GoodsOrder, orderSkus []*model.OrderSku) (err error) {
|
||||
db := orm.NewOrm()
|
||||
order.Status = OrderStatusAdjust
|
||||
if isDuplicated, err := addOrderOrWaybillStatus(c.order2Status(order), db); err == nil && !isDuplicated {
|
||||
isDuplicated, err := addOrderOrWaybillStatus(c.order2Status(order), db)
|
||||
if err == nil && !isDuplicated {
|
||||
err = utils.CallFuncLogError(func() error {
|
||||
_, err := db.Raw("DELETE FROM order_sku WHERE vendor_order_id = ? AND vendor_id = ?", order.VendorOrderID, order.VendorID).Exec()
|
||||
_, err = db.Raw("DELETE FROM order_sku WHERE vendor_order_id = ? AND vendor_id = ?", order.VendorOrderID, order.VendorID).Exec()
|
||||
return err
|
||||
}, "OnAdjustOrder delete order")
|
||||
if err != nil {
|
||||
@@ -147,7 +143,7 @@ func (c *OrderController) OnOrderAdjust(order *model.GoodsOrder, orderSkus []*mo
|
||||
}
|
||||
|
||||
err = utils.CallFuncLogError(func() error {
|
||||
_, err := db.Raw("DELETE FROM goods_order WHERE vendor_order_id = ? AND vendor_id = ?", order.VendorOrderID, order.VendorID).Exec()
|
||||
_, err = db.Raw("DELETE FROM goods_order WHERE vendor_order_id = ? AND vendor_id = ?", order.VendorOrderID, order.VendorID).Exec()
|
||||
return err
|
||||
}, "OnAdjustOrder delete order_sku")
|
||||
if err != nil {
|
||||
@@ -158,7 +154,8 @@ func (c *OrderController) OnOrderAdjust(order *model.GoodsOrder, orderSkus []*mo
|
||||
}
|
||||
|
||||
func (c *OrderController) OnOrderStatusChanged(orderStatus *model.OrderStatus) (err error) {
|
||||
if isDuplicated, err := c.addOrderStatus(orderStatus, nil); err == nil && !isDuplicated {
|
||||
isDuplicated, err := c.addOrderStatus(orderStatus, nil)
|
||||
if err == nil && !isDuplicated {
|
||||
}
|
||||
return err
|
||||
}
|
||||
@@ -220,7 +217,7 @@ func (c *OrderController) addOrderStatus(orderStatus *model.OrderStatus, db orm.
|
||||
order.VendorStatus = orderStatus.VendorStatus
|
||||
utils.CallFuncLogError(func() error {
|
||||
columns := []string{"Status", "VendorStatus"}
|
||||
if orderStatus.Status >= OrderStatusDelivered {
|
||||
if orderStatus.Status >= OrderStatusEndBegin {
|
||||
order.OrderFinishedAt = orderStatus.StatusTime
|
||||
columns = append(columns, "OrderFinishedAt")
|
||||
}
|
||||
@@ -260,7 +257,6 @@ func (c *OrderController) order2Status(order *model.GoodsOrder) (retVal *model.O
|
||||
}
|
||||
|
||||
//Waybill
|
||||
|
||||
func (c *OrderController) OnWaybillStatusChanged(bill *model.Waybill, db orm.Ormer) (err error) {
|
||||
return c.updateOrderByWaybill(bill, db)
|
||||
}
|
||||
|
||||
@@ -56,8 +56,8 @@ func (w *WaybillController) onWaybillNew(bill *model.Waybill) (err error) {
|
||||
bill.Status = WaybillStatusNew
|
||||
bill.WaybillFinishedAt = DefaultTimeValue
|
||||
bill.ID = 0
|
||||
created, _, err := db.ReadOrCreate(bill, "VendorWaybillID", "WaybillVendorID")
|
||||
if err == nil {
|
||||
created, _, err2 := db.ReadOrCreate(bill, "VendorWaybillID", "WaybillVendorID")
|
||||
if err = err2; err == nil {
|
||||
w.WaybillMap.Store(ComposeUniversalOrderID(bill.VendorWaybillID, bill.WaybillVendorID), bill.ID)
|
||||
if !created {
|
||||
bill.DuplicatedCount++
|
||||
@@ -80,10 +80,9 @@ func (w *WaybillController) OnWaybillStatusChanged(bill *model.Waybill) (err err
|
||||
} else {
|
||||
db := orm.NewOrm()
|
||||
isDuplicated, err2 := w.addWaybillStatus(bill, db)
|
||||
if err2 == nil && !isDuplicated {
|
||||
err2 = OrderManager.OnWaybillStatusChanged(bill, db)
|
||||
if err = err2; err == nil && !isDuplicated {
|
||||
err = OrderManager.OnWaybillStatusChanged(bill, db)
|
||||
}
|
||||
err = err2
|
||||
}
|
||||
return err
|
||||
}
|
||||
@@ -93,8 +92,7 @@ func (w *WaybillController) onWaybillAccepted(bill *model.Waybill) (err error) {
|
||||
bill.Status = WaybillStatusAccepted
|
||||
isDuplicated, err := w.addWaybillStatus(bill, db)
|
||||
if !isDuplicated {
|
||||
err = w.updateWaybillPKID(bill, db)
|
||||
if err == nil {
|
||||
if err = w.updateWaybillPKID(bill, db); err == nil {
|
||||
utils.CallFuncLogError(func() error {
|
||||
_, err = db.Update(bill, "CourierName", "CourierMobile")
|
||||
return err
|
||||
@@ -119,11 +117,11 @@ func (w *WaybillController) addWaybillStatus(bill *model.Waybill, db orm.Ormer)
|
||||
bill.VendorStatus = waybillStatus.VendorStatus
|
||||
utils.CallFuncLogError(func() error {
|
||||
columns := []string{"Status", "VendorStatus"}
|
||||
if waybillStatus.Status >= OrderStatusDelivered {
|
||||
if waybillStatus.Status >= OrderStatusEndBegin {
|
||||
bill.WaybillFinishedAt = waybillStatus.StatusTime
|
||||
columns = append(columns, "WaybillFinishedAt")
|
||||
}
|
||||
_, err := db.Update(bill, columns...)
|
||||
_, err = db.Update(bill, columns...)
|
||||
return err
|
||||
}, "update waybill")
|
||||
}
|
||||
@@ -144,8 +142,7 @@ func (w *WaybillController) waybill2Status(bill *model.Waybill) (retVal *model.O
|
||||
}
|
||||
|
||||
func (w *WaybillController) updateWaybillPKID(bill *model.Waybill, db orm.Ormer) (err error) {
|
||||
value, ok := w.WaybillMap.Load(ComposeUniversalOrderID(bill.VendorWaybillID, bill.WaybillVendorID))
|
||||
if !ok {
|
||||
if value, ok := w.WaybillMap.Load(ComposeUniversalOrderID(bill.VendorWaybillID, bill.WaybillVendorID)); !ok {
|
||||
err = db.Read(bill, "VendorWaybillID", "WaybillVendorID")
|
||||
// todo 这里应该要报警,但测试阶段先去掉
|
||||
// utils.CallFuncLogError(func() error {
|
||||
|
||||
Reference in New Issue
Block a user