- log msg refactor, add orderID to all logs.

This commit is contained in:
gazebo
2018-07-22 16:44:44 +08:00
parent 0cb34fe089
commit 7ae0944fc9
14 changed files with 57 additions and 66 deletions

View File

@@ -35,7 +35,7 @@ func addOrderOrWaybillStatus(status *model.OrderStatus, db orm.Ormer) (isDuplica
created, _, err := db.ReadOrCreate(status, "VendorOrderID", "VendorID", "OrderType", "VendorStatus", "StatusTime") created, _, err := db.ReadOrCreate(status, "VendorOrderID", "VendorID", "OrderType", "VendorStatus", "StatusTime")
if err == nil { if err == nil {
if !created { if !created {
globals.SugarLogger.Infof("duplicated event:%v", status) globals.SugarLogger.Debugf("duplicated event:%v", status)
isDuplicated = true isDuplicated = true
status.DuplicatedCount++ status.DuplicatedCount++
utils.CallFuncLogError(func() error { utils.CallFuncLogError(func() error {
@@ -46,7 +46,7 @@ func addOrderOrWaybillStatus(status *model.OrderStatus, db orm.Ormer) (isDuplica
} }
if err != nil { if err != nil {
// todo 这里居然会有主键重复错误,逻辑上是不应该的 // todo 这里居然会有主键重复错误,逻辑上是不应该的
globals.SugarLogger.Warnf("access db error:%v", err) globals.SugarLogger.Warnf("addOrderOrWaybillStatus status:%v, access db error:%v", status, err)
} }
return isDuplicated, err return isDuplicated, err
} }
@@ -85,7 +85,7 @@ func GetDataCityCodeFromOrder(order *model.GoodsOrder) (retVal string, err error
if err != nil && num == 1 { if err != nil && num == 1 {
retVal = lists[0][0].(string) retVal = lists[0][0].(string)
} else { } else {
globals.SugarLogger.Errorf("can not find store info for vendorID:%d, store:%s", order.VendorID, order.VendorStoreID) globals.SugarLogger.Errorf("GetDataCityCodeFromOrder can not find store info for vendorID:%d, store:%s", order.VendorID, order.VendorStoreID)
} }
return retVal, err return retVal, err
} }

View File

@@ -7,7 +7,6 @@ import (
"git.rosy.net.cn/jx-callback/business/jxutils" "git.rosy.net.cn/jx-callback/business/jxutils"
"git.rosy.net.cn/jx-callback/business/model" "git.rosy.net.cn/jx-callback/business/model"
"git.rosy.net.cn/jx-callback/business/scheduler" "git.rosy.net.cn/jx-callback/business/scheduler"
"git.rosy.net.cn/jx-callback/globals"
"git.rosy.net.cn/jx-callback/globals/api" "git.rosy.net.cn/jx-callback/globals/api"
) )
@@ -64,9 +63,6 @@ func (c *WaybillController) callbackMsg2Waybill(msg *dadaapi.CallbackMsg) (retVa
// DeliveryPlatformHandler // DeliveryPlatformHandler
func (c *WaybillController) CreateWaybill(order *model.GoodsOrder) (err error) { func (c *WaybillController) CreateWaybill(order *model.GoodsOrder) (err error) {
globals.SugarLogger.Infof("CreateWaybill order:%v", order)
return nil
billParams := &dadaapi.OperateOrderRequiredParams{ billParams := &dadaapi.OperateOrderRequiredParams{
ShopNo: utils.Int2Str(order.StoreID), // 当前达达的门店号与京西是一样的 ShopNo: utils.Int2Str(order.StoreID), // 当前达达的门店号与京西是一样的
OriginID: jxutils.ComposeUniversalOrderID(order.VendorOrderID, order.VendorID), OriginID: jxutils.ComposeUniversalOrderID(order.VendorOrderID, order.VendorID),
@@ -89,9 +85,6 @@ func (c *WaybillController) CreateWaybill(order *model.GoodsOrder) (err error) {
} }
func (c *WaybillController) CancelWaybill(bill *model.Waybill) (err error) { func (c *WaybillController) CancelWaybill(bill *model.Waybill) (err error) {
globals.SugarLogger.Infof("CancelWaybill bill:%v", bill)
return nil
reasonID := dadaapi.ReasonIDOther reasonID := dadaapi.ReasonIDOther
reasonMsg := "other reason" reasonMsg := "other reason"
if bill.Status < model.WaybillStatusAccepted { if bill.Status < model.WaybillStatusAccepted {

View File

@@ -88,7 +88,7 @@ func (c *OrderController) onOrderStatusMsg(msg *elmapi.CallbackOrderStatusMsg) (
case elmapi.MsgTypeOrderFinished: case elmapi.MsgTypeOrderFinished:
status.Status = model.OrderStatusFinished status.Status = model.OrderStatusFinished
default: default:
globals.SugarLogger.Warnf("elm msg:%d not handled", msg.MsgType) globals.SugarLogger.Warnf("onOrderStatusMsg elm msg:%v not handled", msg)
return elmapi.SuccessResponse return elmapi.SuccessResponse
} }
err := controller.OrderManager.OnOrderStatusChanged(status) err := controller.OrderManager.OnOrderStatusChanged(status)

View File

@@ -24,7 +24,7 @@ func (c *OrderController) legacyWriteElmOrder(order *model.GoodsOrder) (err erro
} }
_, err = db.Insert(legacyOrder) _, err = db.Insert(legacyOrder)
if err != nil { if err != nil {
globals.SugarLogger.Infof("legacyWriteElmOrder orderID:%v insert error:%v", order.VendorOrderID, err) globals.SugarLogger.Infof("legacyWriteElmOrder orderID:%s insert error:%v", order.VendorOrderID, err)
} }
return err return err
} }
@@ -34,15 +34,14 @@ func (c *OrderController) legacyElmOrderStatusChanged(status *model.OrderStatus)
legacyOrder := &legacyorder.Elemeorder2{ legacyOrder := &legacyorder.Elemeorder2{
Orderid: status.VendorOrderID, Orderid: status.VendorOrderID,
} }
if err = db.Read(legacyOrder, "Orderid"); err == nil { if err = db.Read(legacyOrder, "Orderid"); err == nil {
_, legacyOrder.Type = c.spliltCompositeState(status.VendorStatus) _, legacyOrder.Type = c.spliltCompositeState(status.VendorStatus)
utils.CallFuncLogError(func() error { utils.CallFuncLogError(func() error {
_, err = db.Update(legacyOrder, "Type") _, err = db.Update(legacyOrder, "Type")
return err return err
}, "legacyWriteElmOrder") }, "legacyWriteElmOrder status:%v", status)
} else { } else {
globals.SugarLogger.Infof("read legacyElmOrder error:%v", err) globals.SugarLogger.Infof("legacyElmOrderStatusChanged db.Read status:%v, error:%v", status, err)
} }
return err return err
} }

View File

@@ -24,7 +24,7 @@ func (c *OrderController) legacyWriteJdOrder(order *model.GoodsOrder, delOldFirs
} }
_, err = db.Insert(legacyOrder) _, err = db.Insert(legacyOrder)
if err != nil { if err != nil {
globals.SugarLogger.Infof("legacyWriteJdOrder orderID:%v insert error:%v", order.VendorOrderID, err) globals.SugarLogger.Infof("legacyWriteJdOrder orderID:%s insert error:%v", order.VendorOrderID, err)
} }
return err return err
} }
@@ -41,9 +41,9 @@ func (c *OrderController) legacyJdOrderStatusChanged(status *model.OrderStatus)
legacyOrder.Orderstatustime = utils.Time2Str(status.StatusTime) legacyOrder.Orderstatustime = utils.Time2Str(status.StatusTime)
_, err = db.Update(legacyOrder, "Orderstatus", "Orderstatustime") _, err = db.Update(legacyOrder, "Orderstatus", "Orderstatustime")
return err return err
}, "legacyJdOrderStatusChanged") }, "legacyJdOrderStatusChanged, status:%v", status)
} else { } else {
globals.SugarLogger.Infof("read legacyJdOrder error:%v", err) globals.SugarLogger.Infof("legacyJdOrderStatusChanged db.Read status:%v, error:%v", status, err)
} }
return err return err
} }

View File

@@ -62,7 +62,7 @@ func (c *WaybillController) onWaybillMsg(msg *mtpsapi.CallbackOrderMsg) (retVal
case mtpsapi.OrderStatusCanceled: case mtpsapi.OrderStatusCanceled:
order.Status = model.WaybillStatusCanceled order.Status = model.WaybillStatusCanceled
default: default:
globals.SugarLogger.Warnf("unknown msg:%v", msg) globals.SugarLogger.Warnf("onWaybillMsg unknown msg:%v", msg)
return mtpsapi.SuccessResponse return mtpsapi.SuccessResponse
} }
return mtpsapi.Err2CallbackResponse(controller.WaybillManager.OnWaybillStatusChanged(order), order.VendorStatus) return mtpsapi.Err2CallbackResponse(controller.WaybillManager.OnWaybillStatusChanged(order), order.VendorStatus)
@@ -102,7 +102,7 @@ func (c *WaybillController) calculateDeliveryFee(bill *model.Waybill) (retVal in
if err == nil && num == 1 { if err == nil && num == 1 {
delieveryFee = utils.Str2Int64(lists[0][0].(string)) delieveryFee = utils.Str2Int64(lists[0][0].(string))
} else { } else {
globals.SugarLogger.Warnf("calculateDeliveryFee can not cal delivery fee for orderid:%s, num:%d, error:%v", order.VendorOrderID, num, err) globals.SugarLogger.Warnf("calculateDeliveryFee can not calculate delivery fee for orderID:%s, num:%d, error:%v", order.VendorOrderID, num, err)
return 0 return 0
} }
@@ -139,9 +139,6 @@ func (c *WaybillController) calculateDeliveryFee(bill *model.Waybill) (retVal in
// DeliveryPlatformHandler // DeliveryPlatformHandler
func (c *WaybillController) CreateWaybill(order *model.GoodsOrder) (err error) { func (c *WaybillController) CreateWaybill(order *model.GoodsOrder) (err error) {
globals.SugarLogger.Infof("CreateWaybill bill:%v", order)
return nil
db := orm.NewOrm() db := orm.NewOrm()
// 忽略坐标转换错误,即使是转换出错,也只能当成转换成功来处理,底层会有错误日志输出 // 忽略坐标转换错误,即使是转换出错,也只能当成转换成功来处理,底层会有错误日志输出
lngFloat, latFloat, _ := jxutils.IntCoordinate2MarsStandard(order.ConsigneeLng, order.ConsigneeLat, order.CoordinateType) lngFloat, latFloat, _ := jxutils.IntCoordinate2MarsStandard(order.ConsigneeLng, order.ConsigneeLat, order.CoordinateType)
@@ -181,9 +178,6 @@ func (c *WaybillController) CreateWaybill(order *model.GoodsOrder) (err error) {
} }
func (c *WaybillController) CancelWaybill(bill *model.Waybill) (err error) { func (c *WaybillController) CancelWaybill(bill *model.Waybill) (err error) {
globals.SugarLogger.Infof("CancelWaybill bill:%v", bill)
return nil
reasonID := mtpsapi.CancelReasonMerchantOther reasonID := mtpsapi.CancelReasonMerchantOther
reasonMsg := "other reason" reasonMsg := "other reason"
if bill.Status < model.WaybillStatusAccepted { if bill.Status < model.WaybillStatusAccepted {
@@ -206,7 +200,7 @@ func (c *WaybillController) getDeliveryID(order *model.GoodsOrder, db orm.Ormer)
err = utils.CallFuncLogError(func() error { err = utils.CallFuncLogError(func() error {
err2 := db.Read(jxorder, "OrderId") err2 := db.Read(jxorder, "OrderId")
return err2 return err2
}, "getDeliveryID") }, "getDeliveryID, orderID:%s", order.VendorOrderID)
return int64(jxorder.Id), err return int64(jxorder.Id), err
} }
@@ -218,7 +212,7 @@ func (c *WaybillController) getMTPSShopID(order *model.GoodsOrder, db orm.Ormer)
if err != nil && num == 1 { if err != nil && num == 1 {
retVal = lists[0][0].(string) retVal = lists[0][0].(string)
} else { } else {
globals.SugarLogger.Errorf("can not find mtps store info for store:%d", JxStoreID) globals.SugarLogger.Errorf("getMTPSShopID can not find mtps store info for orderID:%s, store:%d", order.VendorOrderID, JxStoreID)
} }
return retVal, err return retVal, err
} }

View File

@@ -33,7 +33,7 @@ func (c *OrderController) LoadPendingOrders() []*model.GoodsOrder {
ORDER by order_created_at ORDER by order_created_at
`, time.Now().Add(-pendingOrderGapMax), model.OrderStatusEndBegin).QueryRows(&orders) `, time.Now().Add(-pendingOrderGapMax), model.OrderStatusEndBegin).QueryRows(&orders)
if err != nil { if err != nil {
globals.SugarLogger.Warnf("init load pending orders error:%v", err) globals.SugarLogger.Warnf("LoadPendingOrders load pending orders error:%v", err)
return nil return nil
} }
return orders return orders
@@ -94,11 +94,11 @@ func (c *OrderController) saveOrder(order *model.GoodsOrder, isAdjust bool, db o
// 忽略查找JX信息错误 // 忽略查找JX信息错误
c.updateOrderOtherInfo(order, db) c.updateOrderOtherInfo(order, db)
db.Begin() db.Begin()
// globals.SugarLogger.Debugf("new order:%v", order)
order.ID = 0 order.ID = 0
order.WaybillVendorID = model.VendorIDUnknown order.WaybillVendorID = model.VendorIDUnknown
order.OrderFinishedAt = utils.DefaultTimeValue order.OrderFinishedAt = utils.DefaultTimeValue
order.OrderCreatedAt = order.StatusTime order.OrderCreatedAt = order.StatusTime
globals.SugarLogger.Debugf("saveOrder isAdjust:%t, order:%v", isAdjust, order)
created, _, err2 := db.ReadOrCreate(order, "VendorOrderID", "VendorID") created, _, err2 := db.ReadOrCreate(order, "VendorOrderID", "VendorID")
if err = err2; err == nil { if err = err2; err == nil {
if created { if created {
@@ -113,7 +113,7 @@ func (c *OrderController) saveOrder(order *model.GoodsOrder, isAdjust bool, db o
sql = sql[:len(sql)-1] + ";" sql = sql[:len(sql)-1] + ";"
if _, err = db.Raw(sql, params...).Exec(); err != nil { if _, err = db.Raw(sql, params...).Exec(); err != nil {
db.Rollback() db.Rollback()
baseapi.SugarLogger.Infof("insert order_sku error:%v", err) baseapi.SugarLogger.Infof("saveOrder insert order:%v, order_sku error:%v", order, err)
} else { } else {
db.Commit() db.Commit()
if globals.GenerateLegacyJxOrder { if globals.GenerateLegacyJxOrder {
@@ -124,11 +124,11 @@ func (c *OrderController) saveOrder(order *model.GoodsOrder, isAdjust bool, db o
order.DuplicatedCount++ order.DuplicatedCount++
db.Update(order, "DuplicatedCount") db.Update(order, "DuplicatedCount")
db.Commit() db.Commit()
baseapi.SugarLogger.Infof("duplicated order:%s vendorID:%d, msg received", order.VendorOrderID, order.VendorID) baseapi.SugarLogger.Infof("saveOrder duplicated orderid:%s msg received", order.VendorOrderID)
} }
} else { } else {
db.Rollback() db.Rollback()
globals.SugarLogger.Warnf("create order:%v, error:%v", order, err) globals.SugarLogger.Warnf("saveOrder create order:%v, error:%v", order, err)
} }
return err return err
} }
@@ -166,11 +166,11 @@ func (c *OrderController) updateOrderSkuOtherInfo(orderSkus []*model.OrderSku, d
if jxskuid, ok := skumapper[v.VendorSkuID]; ok { if jxskuid, ok := skumapper[v.VendorSkuID]; ok {
v.JxSkuID = int(utils.Str2Int64(jxskuid)) v.JxSkuID = int(utils.Str2Int64(jxskuid))
} else { } else {
globals.SugarLogger.Infof("can not find sku map:%v", v.VendorSkuID) globals.SugarLogger.Infof("updateOrderSkuOtherInfo can not find sku map:%v", v)
} }
} }
} else { } else {
globals.SugarLogger.Errorf("can not get sku info for vendorID:%d, vendorOrderID:%s, num:%d, error:%v", orderSkus[0].VendorID, orderSkus[0].VendorOrderID, num, err) globals.SugarLogger.Errorf("updateOrderSkuOtherInfo can not get sku info for orderID:%s, num:%d, error:%v", orderSkus[0].VendorOrderID, num, err)
} }
return err return err
} }
@@ -198,7 +198,7 @@ func (c *OrderController) updateOrderOtherInfo(order *model.GoodsOrder, db orm.O
if num, err := db.Raw(sql, utils.Str2Int64(order.VendorStoreID)).ValuesList(&lists); err == nil && num == 1 { if num, err := db.Raw(sql, utils.Str2Int64(order.VendorStoreID)).ValuesList(&lists); err == nil && num == 1 {
order.JxStoreID = int(utils.Str2Int64(lists[0][0].(string))) order.JxStoreID = int(utils.Str2Int64(lists[0][0].(string)))
} else { } else {
globals.SugarLogger.Errorf("can not find store info for vendorID:%d, store:%s, num:%d, error:%v", order.VendorID, order.VendorStoreID, num, err) globals.SugarLogger.Errorf("updateOrderOtherInfo can not find store info for orderID:%s, store:%s, num:%d, error:%v", order.VendorOrderID, order.VendorStoreID, num, err)
} }
err = c.updateOrderSkuOtherInfo(order.Skus, db) err = c.updateOrderSkuOtherInfo(order.Skus, db)
return err return err
@@ -221,7 +221,7 @@ func (c *OrderController) addOrderStatus(orderStatus *model.OrderStatus, db orm.
utils.CallFuncLogError(func() error { utils.CallFuncLogError(func() error {
_, err = db.QueryTable("goods_order").Filter("vendor_order_id", orderStatus.VendorOrderID).Filter("vendor_id", orderStatus.VendorID).Update(params) _, err = db.QueryTable("goods_order").Filter("vendor_order_id", orderStatus.VendorOrderID).Filter("vendor_id", orderStatus.VendorID).Update(params)
return err return err
}, "update order, status:%v", orderStatus) }, "addOrderStatus update order, status:%v", orderStatus)
} }
return isDuplicated, err return isDuplicated, err
} }
@@ -249,6 +249,6 @@ func (c *OrderController) UpdateWaybillVendorID(bill *model.Waybill) (err error)
utils.CallFuncLogError(func() error { utils.CallFuncLogError(func() error {
_, err = db.QueryTable("goods_order").Filter("vendor_order_id", bill.VendorOrderID).Filter("vendor_id", bill.OrderVendorID).Update(params) _, err = db.QueryTable("goods_order").Filter("vendor_order_id", bill.VendorOrderID).Filter("vendor_id", bill.OrderVendorID).Update(params)
return err return err
}, "update order, bill%v", bill) }, "UpdateWaybillVendorID update order, bill:%v", bill)
return err return err
} }

View File

@@ -166,7 +166,7 @@ func (c *OrderController) legacyWriteJxOrder(order *model.GoodsOrder, db orm.Orm
_, err = db.Insert(jxorder) _, err = db.Insert(jxorder)
if err != nil { if err != nil {
db.Rollback() db.Rollback()
globals.SugarLogger.Infof("insert jxorder error:%v", err) globals.SugarLogger.Infof("insert jxorder:%v error:%v", jxorder, err)
return err return err
} }
sql := "INSERT INTO jxordersku2(vender_id, order_id, jx_sku_id, sku_name, jx_store_id, sku_price, sku_count, is_gift, promotion_type, sku_plat_discount, sku_vender_discount, sku_img) VALUES" sql := "INSERT INTO jxordersku2(vender_id, order_id, jx_sku_id, sku_name, jx_store_id, sku_price, sku_count, is_gift, promotion_type, sku_plat_discount, sku_vender_discount, sku_img) VALUES"
@@ -178,7 +178,7 @@ func (c *OrderController) legacyWriteJxOrder(order *model.GoodsOrder, db orm.Orm
sql = sql[:len(sql)-1] + ";" sql = sql[:len(sql)-1] + ";"
if _, err = db.Raw(sql, params...).Exec(); err != nil { if _, err = db.Raw(sql, params...).Exec(); err != nil {
db.Rollback() db.Rollback()
baseapi.SugarLogger.Infof("insert jxordersku error:%v", err) baseapi.SugarLogger.Infof("insert jxordersku jxorder:%v error:%v", jxorder, err)
} else { } else {
db.Commit() db.Commit()
vendorOrderID := utils.Str2Int64(order.VendorOrderID) vendorOrderID := utils.Str2Int64(order.VendorOrderID)
@@ -230,7 +230,7 @@ func (c *OrderController) legacyJxOrderStatusChanged(status *model.OrderStatus,
return err return err
}, "legacyJxOrderStatusChanged") }, "legacyJxOrderStatusChanged")
} else { } else {
globals.SugarLogger.Infof("read legacyJxOrder error:%v, orderID:%d", err, jxorder.OrderId) globals.SugarLogger.Infof("read legacyJxOrder orderID:%d error:%v, ", jxorder.OrderId, err)
} }
return err return err
} }
@@ -273,7 +273,7 @@ func (c *WaybillController) legacyWaybillStatusChanged(bill *model.Waybill, db o
return err return err
}, "legacyJxOrderStatusChanged") }, "legacyJxOrderStatusChanged")
} else { } else {
globals.SugarLogger.Infof("read legacyJxOrder error:%v, orderID:%d", err, jxorder.OrderId) globals.SugarLogger.Infof("read legacyJxOrder, orderID:%d error:%v", jxorder.OrderId, err)
} }
return err return err
} }

View File

@@ -35,7 +35,7 @@ func (w *WaybillController) LoadPendingWaybills() []*model.Waybill {
`, time.Now().Add(-pendingOrderGapMax), model.WaybillStatusEndBegin, `, time.Now().Add(-pendingOrderGapMax), model.WaybillStatusEndBegin,
time.Now().Add(-pendingOrderGapMax), model.WaybillStatusEndBegin).QueryRows(&bills) time.Now().Add(-pendingOrderGapMax), model.WaybillStatusEndBegin).QueryRows(&bills)
if err != nil { if err != nil {
globals.SugarLogger.Warnf("init load pending waybills error:%v", err) globals.SugarLogger.Warnf("LoadPendingWaybills load pending waybills error:%v", err)
return nil return nil
} }
return bills return bills
@@ -47,15 +47,16 @@ func (w *WaybillController) onWaybillNew(bill *model.Waybill, db orm.Ormer) (isD
bill.ID = 0 bill.ID = 0
bill.WaybillCreatedAt = bill.StatusTime bill.WaybillCreatedAt = bill.StatusTime
bill.WaybillFinishedAt = utils.DefaultTimeValue bill.WaybillFinishedAt = utils.DefaultTimeValue
globals.SugarLogger.Debugf("onWaybillNew bill:%v", bill)
created, _, err2 := db.ReadOrCreate(bill, "VendorWaybillID", "WaybillVendorID") created, _, err2 := db.ReadOrCreate(bill, "VendorWaybillID", "WaybillVendorID")
if err = err2; err == nil { if err = err2; err == nil {
if !created { if !created {
bill.DuplicatedCount++ bill.DuplicatedCount++
db.Update(bill, "DuplicatedCount") db.Update(bill, "DuplicatedCount")
globals.SugarLogger.Infof("duplicated bill:%v vendorID:%d, msg received", bill.VendorWaybillID, bill.WaybillVendorID) globals.SugarLogger.Infof("onWaybillNew duplicated bill:%v msg received", bill)
} }
} else { } else {
globals.SugarLogger.Warnf("create bill:%v, error:%v", bill, err) globals.SugarLogger.Warnf("onWaybillNew create bill:%v, error:%v", bill, err)
} }
} }
return isDuplicated, err return isDuplicated, err
@@ -106,7 +107,7 @@ func (w *WaybillController) addWaybillStatus(bill *model.Waybill, db orm.Ormer,
utils.CallFuncLogError(func() error { utils.CallFuncLogError(func() error {
_, err = db.QueryTable("waybill").Filter("vendor_waybill_id", bill.VendorWaybillID).Filter("waybill_vendor_id", bill.WaybillVendorID).Update(params) _, err = db.QueryTable("waybill").Filter("vendor_waybill_id", bill.VendorWaybillID).Filter("waybill_vendor_id", bill.WaybillVendorID).Update(params)
return err return err
}, "update waybill status, bill:%v", bill) }, "addWaybillStatus update waybill status, bill:%v", bill)
} }
return isDuplicated, err return isDuplicated, err
} }

View File

@@ -60,39 +60,45 @@ func GetWeixinOpenIDsFromStoreID(storeID int) (retVal []string) {
WHERE jxstoreid = ? AND parentid = -1 AND openid IS NOT NULL WHERE jxstoreid = ? AND parentid = -1 AND openid IS NOT NULL
`, storeID, storeID).ValuesList(&lists) `, storeID, storeID).ValuesList(&lists)
if err != nil || num == 0 { if err != nil || num == 0 {
globals.SugarLogger.Infof("can not find openid for store:%d, num:%d, error:%v", storeID, num, err) globals.SugarLogger.Infof("GetWeixinOpenIDsFromStoreID can not find openid for store:%d, num:%d, error:%v", storeID, num, err)
return retVal return retVal
} }
for _, v := range lists { for _, v := range lists {
retVal = append(retVal, v[0].(string)) retVal = append(retVal, v[0].(string))
} }
// todo调试只发给我 if !globals.ReallyCallPlatformAPI {
globals.SugarLogger.Debugf("GetWeixinOpenIDsFromStoreID store:%d, openids:%v", storeID, retVal) // todo调试只发给我
if storeID == 100146 { globals.SugarLogger.Debugf("GetWeixinOpenIDsFromStoreID store:%d, openids:%v", storeID, retVal)
retVal = []string{"oYN_ust9hXKEvEv0X6Mq6nlAWs_E"} if storeID == 100146 {
} else { retVal = []string{"oYN_ust9hXKEvEv0X6Mq6nlAWs_E"}
retVal = []string{} } else {
retVal = nil
}
} }
return retVal return retVal
} }
func SendMsgToStore(storeID int, templateID, downloadURL string, data interface{}) (err error) { func SendMsgToStore(storeID int, templateID, downloadURL string, data interface{}) (err error) {
openIDs := GetWeixinOpenIDsFromStoreID(storeID) openIDs := GetWeixinOpenIDsFromStoreID(storeID)
errCount := 0 successCount := 0
for _, openID := range openIDs { for _, openID := range openIDs {
err2 := api.WeixinAPI.MessageTemplateSend(openID, templateID, downloadURL, nil, data) if err2 := api.WeixinAPI.MessageTemplateSend(openID, templateID, downloadURL, nil, data); err2 == nil {
if err2 != nil { successCount++
} else {
err = err2 err = err2
errCount++
} }
} }
if errCount < len(openIDs) { if successCount > 0 {
err = nil // 只要成功一个都当成成功 err = nil // 只要成功一个都当成成功
} }
if err != nil {
globals.SugarLogger.Debugf("SendMsgToStore all failed storeID:%d, templateID:%s, error:%v", storeID, templateID, err)
}
return err return err
} }
func NotifyNewOrder(order *model.GoodsOrder) (err error) { func NotifyNewOrder(order *model.GoodsOrder) (err error) {
globals.SugarLogger.Debugf("NotifyNewOrder orderID:%s", order.VendorOrderID)
sb := new(strings.Builder) sb := new(strings.Builder)
sb.WriteString("老板,") sb.WriteString("老板,")
sb.WriteString(order.ConsigneeName) sb.WriteString(order.ConsigneeName)
@@ -136,6 +142,7 @@ func NotifyNewOrder(order *model.GoodsOrder) (err error) {
} }
func NotifyWaybillStatus(bill *model.Waybill, order *model.GoodsOrder) error { func NotifyWaybillStatus(bill *model.Waybill, order *model.GoodsOrder) error {
globals.SugarLogger.Debugf("NotifyWaybillStatus bill:%v", bill)
var title string var title string
var templateID string var templateID string
remark := "" remark := ""
@@ -149,14 +156,14 @@ func NotifyWaybillStatus(bill *model.Waybill, order *model.GoodsOrder) error {
} }
titleColor = WX_HIGHLEVEL_TEMPLATE_COLOR titleColor = WX_HIGHLEVEL_TEMPLATE_COLOR
remark = FormatDeliveryTime(order) remark = FormatDeliveryTime(order)
title = fmt.Sprintf("%s %d#订单长时间无人配送,我们已安排%s配送员%s电话号码%s负责配送。^_^", model.VendorChineseNames[bill.OrderVendorID], order.OrderSeq, model.VendorChineseNames[bill.WaybillVendorID], bill.CourierName, bill.CourierMobile) title = fmt.Sprintf("%s %d订单长时间无人配送,我们已安排%s配送员%s电话号码%s负责配送。^_^", model.VendorChineseNames[bill.OrderVendorID], order.OrderSeq, model.VendorChineseNames[bill.WaybillVendorID], bill.CourierName, bill.CourierMobile)
case model.WaybillStatusDelivered: case model.WaybillStatusDelivered:
if bill.WaybillVendorID == model.VendorIDMTPS { if bill.WaybillVendorID == model.VendorIDMTPS {
templateID = WX_MTPS_DELIVERY_DONE_TEMPLATE_ID templateID = WX_MTPS_DELIVERY_DONE_TEMPLATE_ID
} else if bill.WaybillVendorID == model.VendorIDDada { } else if bill.WaybillVendorID == model.VendorIDDada {
templateID = WX_DADA_DELIVERY_DONE_TEMPLATE_ID templateID = WX_DADA_DELIVERY_DONE_TEMPLATE_ID
} }
titleColor = venderColors[bill.WaybillVendorID] titleColor = venderColors[bill.OrderVendorID]
title = fmt.Sprintf("%s 第%d号订单的配送完成", model.VendorChineseNames[bill.OrderVendorID], order.OrderSeq) title = fmt.Sprintf("%s 第%d号订单的配送完成", model.VendorChineseNames[bill.OrderVendorID], order.OrderSeq)
} }
if templateID != "" { if templateID != "" {

View File

@@ -70,7 +70,7 @@ func init() {
// 以下是订单 // 以下是订单
func (s *DefScheduler) OnOrderNew(order *model.GoodsOrder) (err error) { func (s *DefScheduler) OnOrderNew(order *model.GoodsOrder) (err error) {
globals.SugarLogger.Debugf("OnOrderNew, order:%v", order) globals.SugarLogger.Debugf("OnOrderNew, orderID:%s", order.VendorOrderID)
watchInfo := &WatchOrderInfo{ watchInfo := &WatchOrderInfo{
order: order, order: order,
} }

View File

@@ -80,7 +80,6 @@ func (o *OrderController) NewOrder(msg *elmapi.CallbackMsg, orderId string, user
retVal = errResponseDBError retVal = errResponseDBError
} else { } else {
if created || rec.Type < msg.Type { if created || rec.Type < msg.Type {
// todo 回调消息里已经有详情,这里是否有必要再取一次?
result, err := api.ElmAPI.GetOrder(orderId) result, err := api.ElmAPI.GetOrder(orderId)
if err != nil { if err != nil {
retVal = errResponseCallELMAPIError retVal = errResponseCallELMAPIError

View File

@@ -133,11 +133,11 @@ func (f *API) AccessFreshFood(apiStr string, params url.Values) error {
if err == nil && response != nil && response.StatusCode == 200 { if err == nil && response != nil && response.StatusCode == 200 {
break break
} else { } else {
globals.SugarLogger.Infof("Call %s error:%v, response: %v", fullURL, err, response) globals.SugarLogger.Infof("AccessFreshFood Call %s error:%v, response: %v", fullURL, err, response)
} }
} }
if err != nil || response.StatusCode != 200 { if err != nil || response.StatusCode != 200 {
globals.SugarLogger.Errorf("Call %s error:%v, url:%s, response: %v", fullURL, err, fullURL, response) globals.SugarLogger.Errorf("AccessFreshFood Call %s error:%v, url:%s, response: %v", fullURL, err, fullURL, response)
if err != nil { if err != nil {
return err return err
} }

View File

@@ -28,7 +28,6 @@ func InitOrder() {
orderMsgChan = make(chan jdapi.CallbackOrderMsg, 128) orderMsgChan = make(chan jdapi.CallbackOrderMsg, 128)
go orderMsgHandlerRoutine() go orderMsgHandlerRoutine()
// todo 这样操作在有多个进程时,会有问题
// 另外当前这个模式可能会出现同一个订单的消息虽然远程推送过来顺序是对的但经过处理后推送到freshfood时乱序因为每个消息的处理时间是不确定的 // 另外当前这个模式可能会出现同一个订单的消息虽然远程推送过来顺序是对的但经过处理后推送到freshfood时乱序因为每个消息的处理时间是不确定的
handlePendingOrderMsg() handlePendingOrderMsg()
} }
@@ -161,7 +160,6 @@ func newOrder(msg *jdapi.CallbackOrderMsg) error {
rec.Msg, _ = result["msg"].(string) rec.Msg, _ = result["msg"].(string)
rec.Success, _ = result["success"].(bool) rec.Success, _ = result["success"].(bool)
// todo
rec.CityName = "all" rec.CityName = "all"
data := result["data"].(map[string]interface{}) data := result["data"].(map[string]interface{})