- 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"])),
|
ConsigneeLng: controller.StandardCoordinate2Int(utils.MustInterface2Float64(result["buyerLng"])),
|
||||||
CoordinateType: controller.CoordinateTypeMars,
|
CoordinateType: controller.CoordinateTypeMars,
|
||||||
VendorStatus: msg.StatusID,
|
VendorStatus: msg.StatusID,
|
||||||
OrderCreatedAt: utils.Str2Time(result["orderPurchaseTime"].(string)),
|
OrderCreatedAt: utils.Str2Time(result["orderStartTime"].(string)),
|
||||||
OriginalData: string(utils.MustMarshal(result)),
|
OriginalData: string(utils.MustMarshal(result)),
|
||||||
}
|
}
|
||||||
// discounts := result["discount"].(map[string]interface{})
|
// discounts := result["discount"].(map[string]interface{})
|
||||||
|
|||||||
@@ -90,18 +90,14 @@ func (c *OrderController) OnOrderNew(order *model.GoodsOrder, orderSkus []*model
|
|||||||
order.Status = OrderStatusFailed
|
order.Status = OrderStatusFailed
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
if err = c.updateOrderOtherInfo(order, db); err == nil {
|
||||||
err = c.updateOrderOtherInfo(order, db)
|
if err = c.updateOrderSkuOtherInfo(orderSkus, db); err == nil {
|
||||||
if err == nil {
|
|
||||||
err = c.updateOrderSkuOtherInfo(orderSkus, db)
|
|
||||||
if err == nil {
|
|
||||||
db.Begin()
|
db.Begin()
|
||||||
// globals.SugarLogger.Debugf("new order:%v", order)
|
// globals.SugarLogger.Debugf("new order:%v", order)
|
||||||
order.OrderFinishedAt = DefaultTimeValue
|
order.OrderFinishedAt = DefaultTimeValue
|
||||||
order.ID = 0
|
order.ID = 0
|
||||||
created, _, err2 := db.ReadOrCreate(order, "VendorOrderID", "VendorID")
|
created, _, err2 := db.ReadOrCreate(order, "VendorOrderID", "VendorID")
|
||||||
err = err2
|
if err = err2; err == nil {
|
||||||
if err == nil {
|
|
||||||
c.orderMap.Store(ComposeUniversalOrderID(order.VendorOrderID, order.VendorID), order.ID)
|
c.orderMap.Store(ComposeUniversalOrderID(order.VendorOrderID, order.VendorID), order.ID)
|
||||||
if created {
|
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"
|
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)
|
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] + ";"
|
sql = sql[:len(sql)-1] + ";"
|
||||||
_, err = db.Raw(sql, params...).Exec()
|
if _, err = db.Raw(sql, params...).Exec(); err != nil {
|
||||||
if err != nil {
|
|
||||||
db.Rollback()
|
db.Rollback()
|
||||||
baseapi.SugarLogger.Infof("insert order_sku error:%v", err)
|
baseapi.SugarLogger.Infof("insert order_sku error:%v", err)
|
||||||
} else {
|
} 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) {
|
func (c *OrderController) OnOrderAdjust(order *model.GoodsOrder, orderSkus []*model.OrderSku) (err error) {
|
||||||
db := orm.NewOrm()
|
db := orm.NewOrm()
|
||||||
order.Status = OrderStatusAdjust
|
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 = 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
|
return err
|
||||||
}, "OnAdjustOrder delete order")
|
}, "OnAdjustOrder delete order")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -147,7 +143,7 @@ func (c *OrderController) OnOrderAdjust(order *model.GoodsOrder, orderSkus []*mo
|
|||||||
}
|
}
|
||||||
|
|
||||||
err = utils.CallFuncLogError(func() error {
|
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
|
return err
|
||||||
}, "OnAdjustOrder delete order_sku")
|
}, "OnAdjustOrder delete order_sku")
|
||||||
if err != nil {
|
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) {
|
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
|
return err
|
||||||
}
|
}
|
||||||
@@ -220,7 +217,7 @@ func (c *OrderController) addOrderStatus(orderStatus *model.OrderStatus, db orm.
|
|||||||
order.VendorStatus = orderStatus.VendorStatus
|
order.VendorStatus = orderStatus.VendorStatus
|
||||||
utils.CallFuncLogError(func() error {
|
utils.CallFuncLogError(func() error {
|
||||||
columns := []string{"Status", "VendorStatus"}
|
columns := []string{"Status", "VendorStatus"}
|
||||||
if orderStatus.Status >= OrderStatusDelivered {
|
if orderStatus.Status >= OrderStatusEndBegin {
|
||||||
order.OrderFinishedAt = orderStatus.StatusTime
|
order.OrderFinishedAt = orderStatus.StatusTime
|
||||||
columns = append(columns, "OrderFinishedAt")
|
columns = append(columns, "OrderFinishedAt")
|
||||||
}
|
}
|
||||||
@@ -260,7 +257,6 @@ func (c *OrderController) order2Status(order *model.GoodsOrder) (retVal *model.O
|
|||||||
}
|
}
|
||||||
|
|
||||||
//Waybill
|
//Waybill
|
||||||
|
|
||||||
func (c *OrderController) OnWaybillStatusChanged(bill *model.Waybill, db orm.Ormer) (err error) {
|
func (c *OrderController) OnWaybillStatusChanged(bill *model.Waybill, db orm.Ormer) (err error) {
|
||||||
return c.updateOrderByWaybill(bill, db)
|
return c.updateOrderByWaybill(bill, db)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -56,8 +56,8 @@ func (w *WaybillController) onWaybillNew(bill *model.Waybill) (err error) {
|
|||||||
bill.Status = WaybillStatusNew
|
bill.Status = WaybillStatusNew
|
||||||
bill.WaybillFinishedAt = DefaultTimeValue
|
bill.WaybillFinishedAt = DefaultTimeValue
|
||||||
bill.ID = 0
|
bill.ID = 0
|
||||||
created, _, err := db.ReadOrCreate(bill, "VendorWaybillID", "WaybillVendorID")
|
created, _, err2 := db.ReadOrCreate(bill, "VendorWaybillID", "WaybillVendorID")
|
||||||
if err == nil {
|
if err = err2; err == nil {
|
||||||
w.WaybillMap.Store(ComposeUniversalOrderID(bill.VendorWaybillID, bill.WaybillVendorID), bill.ID)
|
w.WaybillMap.Store(ComposeUniversalOrderID(bill.VendorWaybillID, bill.WaybillVendorID), bill.ID)
|
||||||
if !created {
|
if !created {
|
||||||
bill.DuplicatedCount++
|
bill.DuplicatedCount++
|
||||||
@@ -80,10 +80,9 @@ func (w *WaybillController) OnWaybillStatusChanged(bill *model.Waybill) (err err
|
|||||||
} else {
|
} else {
|
||||||
db := orm.NewOrm()
|
db := orm.NewOrm()
|
||||||
isDuplicated, err2 := w.addWaybillStatus(bill, db)
|
isDuplicated, err2 := w.addWaybillStatus(bill, db)
|
||||||
if err2 == nil && !isDuplicated {
|
if err = err2; err == nil && !isDuplicated {
|
||||||
err2 = OrderManager.OnWaybillStatusChanged(bill, db)
|
err = OrderManager.OnWaybillStatusChanged(bill, db)
|
||||||
}
|
}
|
||||||
err = err2
|
|
||||||
}
|
}
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@@ -93,8 +92,7 @@ func (w *WaybillController) onWaybillAccepted(bill *model.Waybill) (err error) {
|
|||||||
bill.Status = WaybillStatusAccepted
|
bill.Status = WaybillStatusAccepted
|
||||||
isDuplicated, err := w.addWaybillStatus(bill, db)
|
isDuplicated, err := w.addWaybillStatus(bill, db)
|
||||||
if !isDuplicated {
|
if !isDuplicated {
|
||||||
err = w.updateWaybillPKID(bill, db)
|
if err = w.updateWaybillPKID(bill, db); err == nil {
|
||||||
if err == nil {
|
|
||||||
utils.CallFuncLogError(func() error {
|
utils.CallFuncLogError(func() error {
|
||||||
_, err = db.Update(bill, "CourierName", "CourierMobile")
|
_, err = db.Update(bill, "CourierName", "CourierMobile")
|
||||||
return err
|
return err
|
||||||
@@ -119,11 +117,11 @@ func (w *WaybillController) addWaybillStatus(bill *model.Waybill, db orm.Ormer)
|
|||||||
bill.VendorStatus = waybillStatus.VendorStatus
|
bill.VendorStatus = waybillStatus.VendorStatus
|
||||||
utils.CallFuncLogError(func() error {
|
utils.CallFuncLogError(func() error {
|
||||||
columns := []string{"Status", "VendorStatus"}
|
columns := []string{"Status", "VendorStatus"}
|
||||||
if waybillStatus.Status >= OrderStatusDelivered {
|
if waybillStatus.Status >= OrderStatusEndBegin {
|
||||||
bill.WaybillFinishedAt = waybillStatus.StatusTime
|
bill.WaybillFinishedAt = waybillStatus.StatusTime
|
||||||
columns = append(columns, "WaybillFinishedAt")
|
columns = append(columns, "WaybillFinishedAt")
|
||||||
}
|
}
|
||||||
_, err := db.Update(bill, columns...)
|
_, err = db.Update(bill, columns...)
|
||||||
return err
|
return err
|
||||||
}, "update waybill")
|
}, "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) {
|
func (w *WaybillController) updateWaybillPKID(bill *model.Waybill, db orm.Ormer) (err error) {
|
||||||
value, ok := w.WaybillMap.Load(ComposeUniversalOrderID(bill.VendorWaybillID, bill.WaybillVendorID))
|
if value, ok := w.WaybillMap.Load(ComposeUniversalOrderID(bill.VendorWaybillID, bill.WaybillVendorID)); !ok {
|
||||||
if !ok {
|
|
||||||
err = db.Read(bill, "VendorWaybillID", "WaybillVendorID")
|
err = db.Read(bill, "VendorWaybillID", "WaybillVendorID")
|
||||||
// todo 这里应该要报警,但测试阶段先去掉
|
// todo 这里应该要报警,但测试阶段先去掉
|
||||||
// utils.CallFuncLogError(func() error {
|
// utils.CallFuncLogError(func() error {
|
||||||
|
|||||||
Reference in New Issue
Block a user