From 479ce462001e342aba754abec0ff399fe8abf13d Mon Sep 17 00:00:00 2001 From: gazebo Date: Mon, 23 Jul 2018 17:30:22 +0800 Subject: [PATCH] - fixed a bug in defsch.init, replace LoadOrder with GetOrder. - dynamic table name for legacy order related table. --- business/controller/controller.go | 33 ------------- business/controller/dada/waybill.go | 48 ++++++++++++++++++- business/controller/dada/waybill_test.go | 45 ++++++++++++++++++ business/controller/mtps/waybill.go | 22 +++++++-- business/controller/mtps/waybill_test.go | 42 +++++++++++++++++ business/controller/order.go | 7 ++- business/controller/order_legacy.go | 59 ++++++++++++++---------- business/jxutils/jxutils.go | 8 ++++ business/legacyorder/elemeorder.go | 4 +- business/legacyorder/jdorder.go | 6 ++- business/legacyorder/jxorder.go | 4 +- business/legacyorder/jxordersku.go | 4 +- business/scheduler/defsch/defsch.go | 2 +- globals/api/api.go | 2 +- globals/db/db.go | 11 +++-- globals/globals.go | 25 ++++++++-- legacy/jd/controller/order.go | 3 +- main.go | 8 ++++ 18 files changed, 253 insertions(+), 80 deletions(-) create mode 100644 business/controller/dada/waybill_test.go create mode 100644 business/controller/mtps/waybill_test.go diff --git a/business/controller/controller.go b/business/controller/controller.go index eda51f2e8..1c8bef09d 100644 --- a/business/controller/controller.go +++ b/business/controller/controller.go @@ -1,7 +1,6 @@ package controller import ( - "fmt" "time" "git.rosy.net.cn/baseapi/utils" @@ -49,38 +48,6 @@ func addOrderOrWaybillStatus(status *model.OrderStatus, db orm.Ormer) (isDuplica return isDuplicated, err } -func GetDataCityCodeFromOrder(order *model.GoodsOrder) (retVal string, err error) { - var sql string - if order.VendorID == model.VendorIDJD { - sql = ` - SELECT t2.tel_code - FROM jxstoremap t0 - JOIN jxstore t1 ON t0.jxstoreid = t1.storeid - JOIN city t2 ON t1.area = t2.citycode - WHERE t0.jdstoreid = ? - ` - } else if order.VendorID == model.VendorIDELM { - sql = ` - SELECT t2.tel_code - FROM jx_to_elm_store_map t0 - JOIN jxstore t1 ON t0.jx_store_id = t1.storeid - JOIN city t2 ON t1.area = t2.citycode - WHERE t0.elm_store_id = ? - ` - } else { - panic(fmt.Sprintf("wrong vendorid:%d", order.VendorID)) - } - db := orm.NewOrm() - var lists []orm.ParamsList - num, err := db.Raw(sql, utils.Str2Int64(order.VendorStoreID)).ValuesList(&lists) - if err != nil && num == 1 { - retVal = lists[0][0].(string) - } else { - globals.SugarLogger.Errorf("GetDataCityCodeFromOrder can not find store info for vendorID:%d, store:%s", order.VendorID, order.VendorStoreID) - } - return retVal, err -} - // todo 可以考虑改成完全按StatusTime来发送事件 func LoadPendingOrders() { orders := OrderManager.LoadPendingOrders() diff --git a/business/controller/dada/waybill.go b/business/controller/dada/waybill.go index 352ce47d7..e235fce61 100644 --- a/business/controller/dada/waybill.go +++ b/business/controller/dada/waybill.go @@ -1,13 +1,22 @@ package dada import ( + "errors" + "fmt" + "git.rosy.net.cn/baseapi/platformapi/dadaapi" "git.rosy.net.cn/baseapi/utils" "git.rosy.net.cn/jx-callback/business/controller" "git.rosy.net.cn/jx-callback/business/jxutils" "git.rosy.net.cn/jx-callback/business/model" "git.rosy.net.cn/jx-callback/business/scheduler" + "git.rosy.net.cn/jx-callback/globals" "git.rosy.net.cn/jx-callback/globals/api" + "github.com/astaxie/beego/orm" +) + +var ( + ErrCanNotFindDadaCityCode = errors.New("不能找到美团配送站点配置") ) type WaybillController struct { @@ -72,7 +81,7 @@ func (c *WaybillController) CreateWaybill(order *model.GoodsOrder) (err error) { ReceiverAddress: order.ConsigneeAddress, ReceiverPhone: order.ConsigneeMobile, } - if billParams.CityCode, err = controller.GetDataCityCodeFromOrder(order); err == nil { + if billParams.CityCode, err = c.getDataCityCodeFromOrder(order); err == nil { billParams.ReceiverLng, billParams.ReceiverLat, _ = jxutils.IntCoordinate2MarsStandard(order.ConsigneeLng, order.ConsigneeLat, order.CoordinateType) addParams := map[string]interface{}{ "info": order.BuyerComment, @@ -94,6 +103,41 @@ func (c *WaybillController) CancelWaybill(bill *model.Waybill) (err error) { reasonID = dadaapi.ReasonIDNobodyPickup reasonMsg = "ReasonIDNobodyPickup" } - _, err = api.DadaAPI.CancelOrder(bill.VendorWaybillID, reasonID, reasonMsg) + _, err = api.DadaAPI.CancelOrder(bill.VendorOrderID, reasonID, reasonMsg) return err } + +func (c *WaybillController) getDataCityCodeFromOrder(order *model.GoodsOrder) (retVal string, err error) { + var sql string + if order.VendorID == model.VendorIDJD { + sql = ` + SELECT t2.tel_code + FROM jxstoremap t0 + JOIN jxstore t1 ON t0.jxstoreid = t1.storeid + JOIN city t2 ON t1.area = t2.citycode + WHERE t0.jdstoreid = ? + ` + } else if order.VendorID == model.VendorIDELM { + sql = ` + SELECT t2.tel_code + FROM jx_to_elm_store_map t0 + JOIN jxstore t1 ON t0.jx_store_id = t1.storeid + JOIN city t2 ON t1.area = t2.citycode + WHERE t0.elm_store_id = ? + ` + } else { + panic(fmt.Sprintf("wrong vendorid:%d", order.VendorID)) + } + db := orm.NewOrm() + var lists []orm.ParamsList + num, err := db.Raw(sql, utils.Str2Int64(order.VendorStoreID)).ValuesList(&lists) + if err == nil && num == 1 { + retVal = lists[0][0].(string) + } else { + globals.SugarLogger.Errorf("GetDataCityCodeFromOrder can not find store info for vendorID:%d, store:%s, num:%d, error:%v", order.VendorID, order.VendorStoreID, num, err) + if err == nil { + err = ErrCanNotFindDadaCityCode + } + } + return retVal, err +} diff --git a/business/controller/dada/waybill_test.go b/business/controller/dada/waybill_test.go new file mode 100644 index 000000000..6d68f1f93 --- /dev/null +++ b/business/controller/dada/waybill_test.go @@ -0,0 +1,45 @@ +package dada + +import ( + "testing" + "time" + + "git.rosy.net.cn/jx-callback/business/controller" + "git.rosy.net.cn/jx-callback/business/model" + "git.rosy.net.cn/jx-callback/globals" + "git.rosy.net.cn/jx-callback/globals/api" + "git.rosy.net.cn/jx-callback/globals/db" + "github.com/astaxie/beego" +) + +func init() { + beego.InitBeegoBeforeTest("/Users/xujianhua/go/src/git.rosy.net.cn/jx-callback/conf/app.conf") + beego.BConfig.RunMode = "dev" // InitBeegoBeforeTest会将runmode设置为test + + globals.Init() + db.Init() + api.Init() +} + +func TestCreateWaybill(t *testing.T) { + orderID := "817540316000041" + if order, err := controller.OrderManager.LoadOrder(orderID, model.VendorIDJD); err == nil { + // globals.SugarLogger.Debug(order) + c := new(WaybillController) + if err = c.CreateWaybill(order); err == nil { + time.Sleep(1 * time.Second) + bill := &model.Waybill{ + VendorOrderID: orderID, + WaybillVendorID: model.VendorIDDada, + } + err = c.CancelWaybill(bill) + if err != nil { + t.Fatal(err.Error()) + } + } else { + t.Fatal(err.Error()) + } + } else { + t.Fatal(err.Error()) + } +} diff --git a/business/controller/mtps/waybill.go b/business/controller/mtps/waybill.go index 18b805ddb..d50d89e47 100644 --- a/business/controller/mtps/waybill.go +++ b/business/controller/mtps/waybill.go @@ -1,6 +1,7 @@ package mtps import ( + "errors" "math" "git.rosy.net.cn/baseapi/platformapi/mtpsapi" @@ -12,9 +13,14 @@ import ( "git.rosy.net.cn/jx-callback/business/scheduler" "git.rosy.net.cn/jx-callback/globals" "git.rosy.net.cn/jx-callback/globals/api" + "github.com/astaxie/beego" "github.com/astaxie/beego/orm" ) +var ( + ErrCanNotFindMTPSStore = errors.New("不能找到美团配送站点配置") +) + type WaybillController struct { } @@ -158,19 +164,19 @@ func (c *WaybillController) CreateWaybill(order *model.GoodsOrder) (err error) { } if billParams.DeliveryID, err = c.getDeliveryID(order, db); err == nil { if billParams.ShopID, err = c.getMTPSShopID(order, db); err == nil { + globals.SugarLogger.Debug(billParams.ShopID) goods := &mtpsapi.GoodsDetail{ Goods: []*mtpsapi.GoodsItem{}, } for _, sku := range order.Skus { goodItem := &mtpsapi.GoodsItem{ GoodCount: sku.Count, - GoodName: sku.SkuName, GoodPrice: jxutils.IntPrice2Standard(sku.SalePrice), - GoodUnit: "", //这个应该不是必须的,商品名里已经有UNIT的字样了 } + goodItem.GoodName, goodItem.GoodUnit = jxutils.SplitSkuName(sku.SkuName) goods.Goods = append(goods.Goods, goodItem) } - addParams := utils.Params2Map("note", order.BuyerComment, "good_detail", string(utils.MustMarshal(goods))) + addParams := utils.Params2Map("note", order.BuyerComment, "goods_detail", string(utils.MustMarshal(goods))) _, err = api.MtpsAPI.CreateOrderByShop(billParams, addParams) } } @@ -209,10 +215,16 @@ func (c *WaybillController) getMTPSShopID(order *model.GoodsOrder, db orm.Ormer) var lists []orm.ParamsList JxStoreID := jxutils.GetJxStoreIDFromOrder(order) num, err := db.Raw(sql, JxStoreID).ValuesList(&lists) - if err != nil && num == 1 { + if err == nil && num == 1 { retVal = lists[0][0].(string) + if beego.BConfig.RunMode == "dev" { + retVal = "test_0001" + } } else { - globals.SugarLogger.Errorf("getMTPSShopID can not find mtps store info for orderID:%s, store:%d", order.VendorOrderID, JxStoreID) + globals.SugarLogger.Errorf("getMTPSShopID can not find mtps store info for orderID:%s, store:%d, num:%d, error:%v", order.VendorOrderID, JxStoreID, num, err) + if err == nil { + err = ErrCanNotFindMTPSStore + } } return retVal, err } diff --git a/business/controller/mtps/waybill_test.go b/business/controller/mtps/waybill_test.go new file mode 100644 index 000000000..a5f6cdc52 --- /dev/null +++ b/business/controller/mtps/waybill_test.go @@ -0,0 +1,42 @@ +package mtps + +import ( + "testing" + + "git.rosy.net.cn/jx-callback/business/controller" + "git.rosy.net.cn/jx-callback/business/model" + "git.rosy.net.cn/jx-callback/globals" + "git.rosy.net.cn/jx-callback/globals/api" + "git.rosy.net.cn/jx-callback/globals/db" + "github.com/astaxie/beego" +) + +func init() { + beego.InitBeegoBeforeTest("/Users/xujianhua/go/src/git.rosy.net.cn/jx-callback/conf/app.conf") + beego.BConfig.RunMode = "dev" // InitBeegoBeforeTest会将runmode设置为test + + globals.Init() + db.Init() + api.Init() +} + +func TestCreateWaybill(t *testing.T) { + orerID := "817109342000022" + order, _ := controller.OrderManager.LoadOrder(orerID, model.VendorIDJD) + // globals.SugarLogger.Debug(order) + c := new(WaybillController) + if err := c.CreateWaybill(order); err != nil { + t.Fatal(err.Error()) + } +} + +func TestCancelWaybill(t *testing.T) { + bill := &model.Waybill{ + VendorWaybillID: "1532332342088966", + VendorWaybillID2: "55", + } + c := new(WaybillController) + if err := c.CancelWaybill(bill); err != nil { + t.Fatal(err.Error()) + } +} diff --git a/business/controller/order.go b/business/controller/order.go index 2cb43f6b3..7c4840115 100644 --- a/business/controller/order.go +++ b/business/controller/order.go @@ -239,7 +239,12 @@ func (c *OrderController) LoadOrder(vendorOrderID string, vendorID int) (order * VendorOrderID: vendorOrderID, VendorID: vendorID, } - err = db.Read(order, "VendorOrderID", "VendorID") + if err = db.Read(order, "VendorOrderID", "VendorID"); err == nil { + _, err = db.QueryTable("order_sku").Filter("vendor_order_id", vendorOrderID).Filter("vendor_id", vendorID).All(&order.Skus) + } + if err != nil { + globals.SugarLogger.Warnf("LoadOrder orderID:%s failed with error:%v", vendorOrderID, err) + } return order, err } diff --git a/business/controller/order_legacy.go b/business/controller/order_legacy.go index 463d82cc0..07b5afd59 100644 --- a/business/controller/order_legacy.go +++ b/business/controller/order_legacy.go @@ -132,30 +132,32 @@ func (c *OrderController) legacyWriteJxOrder(order *model.GoodsOrder, db orm.Orm db.Begin() if isDelFirst { - db.Raw("DELETE FROM jxorder2 WHERE order_id = ?", utils.Str2Int64(order.VendorOrderID)) - db.Raw("DELETE FROM jxordersku2 WHERE order_id = ?", utils.Str2Int64(order.VendorOrderID)) + 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)) } jxorder := &legacyorder.Jxorder2{ - VenderId: int8(order.VendorID), - OrderId: utils.Str2Int64(order.VendorOrderID), - JxStoreId: utils.Int2Str(jxutils.GetJxStoreIDFromOrder(order)), - JxStoreName: order.StoreName, - OrderNum: order.OrderSeq, - OrderStatus: legacyMapOrderStatus(order.Status), - OrderStatusTime: utils.Time2Str(order.StatusTime), - BusinessTag: businessTags, - SkuCount: order.SkuCount, - OrderBuyerRemark: order.BuyerComment, - BuyerFullName: order.ConsigneeName, - BuyerFullAddress: order.ConsigneeAddress, - BuyerMobile: order.ConsigneeMobile, - BuyerCoordType: legacyMapCoordinateType(order.CoordinateType), - BuyerLng: jxutils.IntCoordinate2Standard(order.ConsigneeLng), - BuyerLat: jxutils.IntCoordinate2Standard(order.ConsigneeLat), - CityName: "all", - OrderStartTime: utils.Time2Str(order.StatusTime), - JdStoreId: order.VendorStoreID, + VenderId: int8(order.VendorID), + OrderId: utils.Str2Int64(order.VendorOrderID), + JxStoreId: utils.Int2Str(jxutils.GetJxStoreIDFromOrder(order)), + JxStoreName: order.StoreName, + OrderNum: order.OrderSeq, + OrderStatus: legacyMapOrderStatus(order.Status), + OrderStatusTime: utils.Time2Str(order.StatusTime), + BusinessTag: businessTags, + SkuCount: order.SkuCount, + OrderBuyerRemark: order.BuyerComment, + BuyerFullName: order.ConsigneeName, + BuyerFullAddress: order.ConsigneeAddress, + BuyerMobile: order.ConsigneeMobile, + BuyerCoordType: legacyMapCoordinateType(order.CoordinateType), + BuyerLng: jxutils.IntCoordinate2Standard(order.ConsigneeLng), + BuyerLat: jxutils.IntCoordinate2Standard(order.ConsigneeLat), + CityName: "all", + OrderStartTime: utils.Time2Str(order.StatusTime), + JdStoreId: order.VendorStoreID, + OrderTotalMoney: int(order.SalePrice), + OrderDiscountMoney: int(order.SalePrice - order.ActualPayPrice), // DeliveryPackageWeight: float64(order.Weight) / 1000, } @@ -169,7 +171,7 @@ func (c *OrderController) legacyWriteJxOrder(order *model.GoodsOrder, db orm.Orm globals.SugarLogger.Infof("insert jxorder:%v error:%v", jxorder, 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 " + globals.JxorderskuTableName + "(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" params := []interface{}{} for _, sku := range order.Skus { sql += "(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)," @@ -184,7 +186,7 @@ func (c *OrderController) legacyWriteJxOrder(order *model.GoodsOrder, db orm.Orm vendorOrderID := utils.Str2Int64(order.VendorOrderID) utils.CallFuncLogError(func() error { _, err = db.Raw(` - UPDATE jxorder2 t1 + UPDATE `+globals.JxorderTableName+` t1 JOIN jxstore t2 ON t2.storeid = t1.jx_store_id SET t1.store_lng = t2.lng, t1.store_lat = t2.lat @@ -195,7 +197,7 @@ func (c *OrderController) legacyWriteJxOrder(order *model.GoodsOrder, db orm.Orm utils.CallFuncLogError(func() error { _, err = db.Raw(` - UPDATE jxordersku2 t1 + UPDATE `+globals.JxorderskuTableName+` t1 JOIN jx_sku t2 ON t2.id = t1.jx_sku_id JOIN jx_sku_name t3 ON t3.id = t2.nameid SET t1.sku_img = t3.img @@ -227,6 +229,15 @@ func (c *OrderController) legacyJxOrderStatusChanged(status *model.OrderStatus, updateFields = append(updateFields, "DeliveryFinishTime") } _, err = db.Update(jxorder, updateFields...) + + 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 { diff --git a/business/jxutils/jxutils.go b/business/jxutils/jxutils.go index 2cc6575c4..2ccb99249 100644 --- a/business/jxutils/jxutils.go +++ b/business/jxutils/jxutils.go @@ -160,3 +160,11 @@ func CallMsgHandlerAsync(handler func(), primaryID string) { handler() }, primaryID) } + +func SplitSkuName(fullName string) (name string, unit string) { + index := strings.Index(fullName, "/") + if index >= 0 { + return fullName[:index], fullName[index+1:] + } + return fullName, "份" +} diff --git a/business/legacyorder/elemeorder.go b/business/legacyorder/elemeorder.go index c7e3b5ed0..98a5f778f 100644 --- a/business/legacyorder/elemeorder.go +++ b/business/legacyorder/elemeorder.go @@ -1,5 +1,7 @@ package legacyorder +import "git.rosy.net.cn/jx-callback/globals" + type Elemeorder2 struct { Id int `orm:"column(id);auto"` Orderid string `orm:"column(orderid);size(50);null;unique"` @@ -11,5 +13,5 @@ type Elemeorder2 struct { } func (t *Elemeorder2) TableName() string { - return "elemeorder2" + return globals.ElemeorderTableName } diff --git a/business/legacyorder/jdorder.go b/business/legacyorder/jdorder.go index 8af081e2a..76d8bd05e 100644 --- a/business/legacyorder/jdorder.go +++ b/business/legacyorder/jdorder.go @@ -1,5 +1,9 @@ package legacyorder +import ( + "git.rosy.net.cn/jx-callback/globals" +) + type Jdorder2 struct { Id int `orm:"column(id);auto"` Code string `orm:"column(code);size(2);null"` @@ -13,5 +17,5 @@ type Jdorder2 struct { } func (t *Jdorder2) TableName() string { - return "jdorder2" + return globals.JdorderTableName } diff --git a/business/legacyorder/jxorder.go b/business/legacyorder/jxorder.go index 19e710cd5..3309850e5 100644 --- a/business/legacyorder/jxorder.go +++ b/business/legacyorder/jxorder.go @@ -1,5 +1,7 @@ package legacyorder +import "git.rosy.net.cn/jx-callback/globals" + type Jxorder2 struct { Id int `orm:"column(id);auto"` VenderId int8 `orm:"column(vender_id);null"` @@ -55,5 +57,5 @@ type Jxorder2 struct { } func (t *Jxorder2) TableName() string { - return "jxorder2" + return globals.JxorderTableName } diff --git a/business/legacyorder/jxordersku.go b/business/legacyorder/jxordersku.go index 40341f437..dd63506f9 100644 --- a/business/legacyorder/jxordersku.go +++ b/business/legacyorder/jxordersku.go @@ -1,5 +1,7 @@ package legacyorder +import "git.rosy.net.cn/jx-callback/globals" + type Jxordersku2 struct { Id int `orm:"column(id);auto"` VenderId int8 `orm:"column(vender_id);null"` @@ -17,5 +19,5 @@ type Jxordersku2 struct { } func (t *Jxordersku2) TableName() string { - return "jxordersku2" + return globals.JxorderskuTableName } diff --git a/business/scheduler/defsch/defsch.go b/business/scheduler/defsch/defsch.go index e64bded89..45866cf5b 100644 --- a/business/scheduler/defsch/defsch.go +++ b/business/scheduler/defsch/defsch.go @@ -51,7 +51,7 @@ func init() { if err = sch.AcceptOrRefuseOrder(order, isAcceptIt); err != nil { // 为了解决京东新消息与接单消息乱序的问题 if errWithCode, ok := err.(*utils.ErrorWithCode); ok && errWithCode.Level() == 1 && errWithCode.IntCode() == -1 { - if order2, err2 := sch.CurOrderManager.LoadOrder(order.VendorOrderID, order.VendorID); err2 == nil && order2.Status > order.Status { + if order2, err2 := sch.GetPurchasePlatformFromVendorID(order.VendorID).GetOrder(order.VendorOrderID); err2 == nil && order2.Status > order.Status { sch.OnOrderStatusChanged(model.Order2Status(order2)) err = nil } else { diff --git a/globals/api/api.go b/globals/api/api.go index 87302a0c0..4ae374e7e 100644 --- a/globals/api/api.go +++ b/globals/api/api.go @@ -23,7 +23,7 @@ var ( AutonaviAPI *autonavi.API ) -func init() { +func Init() { JdAPI = jdapi.New(beego.AppConfig.String("jdToken"), beego.AppConfig.String("jdAppKey"), beego.AppConfig.String("jdSecret")) initElm() MtpsAPI = mtpsapi.New(beego.AppConfig.String("mtpsAppKey"), beego.AppConfig.String("mtpsSecret")) diff --git a/globals/db/db.go b/globals/db/db.go index 655a0b24e..3c38c9869 100644 --- a/globals/db/db.go +++ b/globals/db/db.go @@ -10,20 +10,21 @@ import ( _ "github.com/go-sql-driver/mysql" // import your used driver ) -func init() { +func Init() { // set default database orm.RegisterDataBase("default", "mysql", beego.AppConfig.String("dbConnectStr"), 30) - models.RegisterModels() + if globals.CallLegacyMsgHandler { + models.RegisterModels() + } if globals.CallNewMsgHandler { orm.RegisterModel(new(model.GoodsOrder)) orm.RegisterModel(new(model.OrderSku)) orm.RegisterModel(new(model.Waybill)) orm.RegisterModel(new(model.OrderStatus)) - - // orm.RegisterModel(new(legacyorder.Elemeorder2)) - // orm.RegisterModel(new(legacyorder.Jdorder2)) orm.RegisterModel(new(legacyorder.Jxorder2)) orm.RegisterModel(new(legacyorder.Jxordersku2)) + // orm.RegisterModel(new(legacyorder.Elemeorder2)) + // orm.RegisterModel(new(legacyorder.Jdorder2)) } // create table orm.RunSyncdb("default", false, true) diff --git a/globals/globals.go b/globals/globals.go index 27fd9195f..4ed95f8c8 100644 --- a/globals/globals.go +++ b/globals/globals.go @@ -18,18 +18,37 @@ var ( ReallyCallPlatformAPI bool SugarLogger *zap.SugaredLogger + + JxorderTableName string + JxorderskuTableName string + ElemeorderTableName string + JdorderTableName string ) func init() { logs.SetLogFuncCallDepth(3) beego.BConfig.Log.AccessLogs = true + logger, _ := zap.NewDevelopment() + SugarLogger = logger.Sugar() + baseapi.Init(SugarLogger) +} + +func Init() { CallLegacyMsgHandler = beego.AppConfig.DefaultBool("callLegacyMsgHandler", true) CallNewMsgHandler = beego.AppConfig.DefaultBool("callNewMsgHandler", false) GenerateLegacyJxOrder = beego.AppConfig.DefaultBool("generateLegacyJxOrder", false) ReallyCallPlatformAPI = !CallLegacyMsgHandler - logger, _ := zap.NewDevelopment() - SugarLogger = logger.Sugar() - baseapi.Init(SugarLogger) + if ReallyCallPlatformAPI { + JxorderTableName = "jxorder" + JxorderskuTableName = "jxordersku" + ElemeorderTableName = "elemeorder" + JdorderTableName = "jdorder" + } else { + JxorderTableName = "jxorder2" + JxorderskuTableName = "jxordersku2" + ElemeorderTableName = "elemeorder2" + JdorderTableName = "jdorder2" + } } diff --git a/legacy/jd/controller/order.go b/legacy/jd/controller/order.go index 85bc51328..d77ba9a11 100644 --- a/legacy/jd/controller/order.go +++ b/legacy/jd/controller/order.go @@ -205,9 +205,10 @@ func normalOrderStatus(msg *jdapi.CallbackOrderMsg) (err error) { err = db.Read(rec, "JdOrderId") if err != nil { - globals.SugarLogger.Warnf("error when accessing db err:%v, rec:%v", err, rec) if err == orm.ErrNoRows { err = nil // 如果没有查到,不当成错误 + } else { + globals.SugarLogger.Warnf("error when accessing db err:%v, rec:%v", err, rec) } } else { if rec.OrderStatus == int(utils.Str2Int64(msg.StatusID)) { diff --git a/main.go b/main.go index 27b126c57..f4aa4730d 100644 --- a/main.go +++ b/main.go @@ -3,12 +3,20 @@ package main import ( bzcon "git.rosy.net.cn/jx-callback/business/controller" "git.rosy.net.cn/jx-callback/globals" + "git.rosy.net.cn/jx-callback/globals/api" + "git.rosy.net.cn/jx-callback/globals/db" "git.rosy.net.cn/jx-callback/legacy/jd/controller" "git.rosy.net.cn/jx-callback/legacy/tasks" _ "git.rosy.net.cn/jx-callback/routers" "github.com/astaxie/beego" ) +func init() { + globals.Init() + db.Init() + api.Init() +} + func main() { if beego.BConfig.RunMode == "prod" { if err := tasks.RefreshWeixinToken(); err != nil {