diff --git a/business/controller/elm/order.go b/business/controller/elm/order.go index f17cb8ede..8b1092e42 100644 --- a/business/controller/elm/order.go +++ b/business/controller/elm/order.go @@ -2,8 +2,10 @@ package elm import ( "fmt" + "math" "git.rosy.net.cn/jx-callback/globals" + "git.rosy.net.cn/jx-callback/globals/api" "git.rosy.net.cn/baseapi/platformapi/elmapi" "git.rosy.net.cn/baseapi/utils" @@ -15,10 +17,6 @@ type OrderController struct { controller.OrderController } -var ( - api *elmapi.API -) - func (c *OrderController) OnOrderStatusMsg(msg *elmapi.CallbackOrderStatusMsg) (retVal *elmapi.CallbackResponse) { controller.RoutinePool.CallFun(func() { retVal = c.onOrderStatusMsg(msg) @@ -94,37 +92,41 @@ func (c *OrderController) onOrderCancelRefundMsg(msg *elmapi.CallbackOrderCancel return retVal } -func (c *OrderController) getOrderInfo(msg *elmapi.CallbackOrderStatusMsg) (order *model.Order, orderSkus []*model.OrderSku, err error) { - result, err := api.GetOrder(msg.OrderID) +func (c *OrderController) getOrderInfo(msg *elmapi.CallbackOrderStatusMsg) (order *model.GoodsOrder, orderSkus []*model.OrderSku, err error) { + result, err := api.ElmAPI.GetOrder(msg.OrderID) if err == nil { phoneList := result["phoneList"].([]interface{}) consigneeMobile := "" if len(phoneList) > 0 { consigneeMobile = phoneList[0].(string) } - order = &model.Order{ + // globals.SugarLogger.Debug(result) + order = &model.GoodsOrder{ VendorOrderID: msg.OrderID, VendorID: controller.VendorIDELM, - VendorStoreID: result["shopId"].(string), - StoreID: int(utils.Str2Int64(result["openId"].(string))), + VendorStoreID: utils.Int64ToStr(utils.MustInterface2Int64(result["shopId"])), + StoreID: int(utils.Str2Int64WithDefault(utils.Interface2String(result["openId"]), 0)), StoreName: result["shopName"].(string), ConsigneeName: result["consignee"].(string), ConsigneeMobile: consigneeMobile, VendorStatus: msg.State, OrderCreatedAt: utils.Str2Time(result["createdAt"].(string)), + OriginalData: string(utils.MustMarshal(result)), } orderSkus = []*model.OrderSku{} - for _, group := range result["groups"].([]map[string]interface{}) { - for _, product := range group["items"].([]map[string]interface{}) { + for _, group2 := range result["groups"].([]interface{}) { + group := group2.(map[string]interface{}) + for _, product2 := range group["items"].([]interface{}) { + product := product2.(map[string]interface{}) sku := &model.OrderSku{ VendorOrderID: msg.OrderID, VendorID: controller.VendorIDJD, Count: int(utils.MustInterface2Int64(product["quantity"])), - SkuID: int(utils.Str2Int64(product["extendCode"].(string))), - VendorSkuID: product["skuId"].(string), + SkuID: int(utils.Str2Int64WithDefault(utils.Interface2String(product["extendCode"]), 0)), + VendorSkuID: utils.Int64ToStr(utils.MustInterface2Int64(product["skuId"])), SkuName: product["name"].(string), - SalePrice: utils.MustInterface2Int64(product["userPrice"]), + SalePrice: int64(math.Round(utils.MustInterface2Float64(product["userPrice"]) * 100)), OrderCreatedAt: order.OrderCreatedAt, } orderSkus = append(orderSkus, sku) @@ -202,10 +204,10 @@ func (c *OrderController) onOrderOtherCancelRefundStatus(msg *elmapi.CallbackOrd } // PurchasePlatformHandler -func (c *OrderController) AcceptOrRefuseOrder(order *model.Order, isAcceptIt bool) { +func (c *OrderController) AcceptOrRefuseOrder(order *model.GoodsOrder, isAcceptIt bool) { if isAcceptIt { - api.ConfirmOrder(order.VendorOrderID) + api.ElmAPI.ConfirmOrder(order.VendorOrderID) } else { - api.CancelOrder(order.VendorOrderID, elmapi.CancelOrderTypeOthers, "") + api.ElmAPI.CancelOrder(order.VendorOrderID, elmapi.CancelOrderTypeOthers, "") } } diff --git a/business/controller/jd/order.go b/business/controller/jd/order.go index 59561146a..685a4635d 100644 --- a/business/controller/jd/order.go +++ b/business/controller/jd/order.go @@ -5,16 +5,14 @@ import ( "git.rosy.net.cn/baseapi/utils" "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" ) type OrderController struct { controller.OrderController } -var ( - api *jdapi.API -) - func (c *OrderController) OnOrderMsg(msg *jdapi.CallbackOrderMsg) (retVal *jdapi.CallbackResponse) { controller.RoutinePool.CallFun(func() { retVal = c.onOrderMsg(msg) @@ -57,29 +55,32 @@ func (c *OrderController) onOrderMsg(msg *jdapi.CallbackOrderMsg) (retVal *jdapi return retVal } -func (c *OrderController) getOrderInfo(msg *jdapi.CallbackOrderMsg) (order *model.Order, orderSkus []*model.OrderSku, err error) { - result, err := api.QuerySingleOrder(msg.BillID) +func (c *OrderController) getOrderInfo(msg *jdapi.CallbackOrderMsg) (order *model.GoodsOrder, orderSkus []*model.OrderSku, err error) { + result, err := api.JdAPI.QuerySingleOrder(msg.BillID) + // globals.SugarLogger.Info(result) if err == nil { - order = &model.Order{ + order = &model.GoodsOrder{ VendorOrderID: msg.BillID, VendorID: controller.VendorIDJD, VendorStoreID: result["produceStationNo"].(string), - StoreID: int(utils.MustInterface2Int64(result["produceStationNoIsv"])), + StoreID: int(utils.Str2Int64WithDefault(utils.Interface2String(result["produceStationNoIsv"]), 0)), StoreName: result["produceStationName"].(string), ConsigneeName: result["buyerFullName"].(string), ConsigneeMobile: result["buyerMobile"].(string), VendorStatus: msg.StatusID, OrderCreatedAt: utils.Str2Time(result["orderPurchaseTime"].(string)), + OriginalData: string(utils.MustMarshal(result)), } // discounts := result["discount"].(map[string]interface{}) orderSkus = []*model.OrderSku{} - for _, product := range result["product"].([]map[string]interface{}) { + for _, product2 := range result["product"].([]interface{}) { + product := product2.(map[string]interface{}) sku := &model.OrderSku{ VendorOrderID: msg.BillID, VendorID: controller.VendorIDJD, Count: int(utils.MustInterface2Int64(product["skuCount"])), - SkuID: int(utils.Str2Int64(product["skuIdIsv"].(string))), - VendorSkuID: product["skuId"].(string), + SkuID: int(utils.Str2Int64WithDefault(utils.Interface2String(product["skuIdIsv"]), 0)), + VendorSkuID: utils.Int64ToStr(utils.MustInterface2Int64(product["skuId"])), SkuName: product["skuName"].(string), SalePrice: utils.MustInterface2Int64(product["skuJdPrice"]), OrderCreatedAt: order.OrderCreatedAt, @@ -98,6 +99,8 @@ func (c *OrderController) onOrderNew(msg *jdapi.CallbackOrderMsg) (response *jda order, orderSkus, err := c.getOrderInfo(msg) if err == nil { err = c.OnOrderNew(c, order, orderSkus) + } else { + globals.SugarLogger.Debugf("get order error:%v", err) } return jdapi.Err2CallbackResponse(err, "jd onOrderNew") } @@ -139,6 +142,6 @@ func (c *OrderController) onOrderOtherStatus(msg *jdapi.CallbackOrderMsg) *jdapi } // PurchasePlatformHandler -func (c *OrderController) AcceptOrRefuseOrder(order *model.Order, isAcceptIt bool) { - api.OrderAcceptOperate(order.VendorOrderID, isAcceptIt) +func (c *OrderController) AcceptOrRefuseOrder(order *model.GoodsOrder, isAcceptIt bool) { + api.JdAPI.OrderAcceptOperate(order.VendorOrderID, isAcceptIt) } diff --git a/business/controller/mtps/waybill.go b/business/controller/mtps/waybill.go index 14cf1a952..d3e381038 100644 --- a/business/controller/mtps/waybill.go +++ b/business/controller/mtps/waybill.go @@ -19,15 +19,29 @@ func (c *WaybillController) OnWaybillMsg(msg *mtpsapi.CallbackOrderMsg) (retVal return retVal } +func (c *WaybillController) OnWaybillExcept(msg *mtpsapi.CallbackOrderExceptionMsg) (retVal *mtpsapi.CallbackResponse) { + controller.RoutinePool.CallFun(func() { + status := &model.OrderStatus{ + VendorOrderID: msg.MtPeisongID, + VendorID: controller.VendorIDMTPS, + OrderType: controller.OrderTypeWaybill, + VendorStatus: utils.Int2Str(msg.ExceptionCode), + StatusTime: utils.Timestamp2Time(int64(msg.Timestamp)), + } + retVal = mtpsapi.Err2CallbackResponse(c.OnWaybillFailed(status), "mtps OnWaybillExcept") + }, msg.MtPeisongID) + return retVal +} + func (c *WaybillController) callbackMsg2Status(msg *mtpsapi.CallbackOrderMsg) *model.OrderStatus { - orderStatus := &model.OrderStatus{ + status := &model.OrderStatus{ VendorOrderID: msg.MtPeisongID, VendorID: controller.VendorIDMTPS, OrderType: controller.OrderTypeWaybill, VendorStatus: utils.Int2Str(msg.Status), StatusTime: utils.Timestamp2Time(int64(msg.Timestamp)), } - return orderStatus + return status } func (c *WaybillController) onWaybillMsg(msg *mtpsapi.CallbackOrderMsg) (retVal *mtpsapi.CallbackResponse) { diff --git a/business/controller/order.go b/business/controller/order.go index d39be2b4e..cd31f599a 100644 --- a/business/controller/order.go +++ b/business/controller/order.go @@ -32,7 +32,7 @@ const ( ) type PurchasePlatformHandler interface { - AcceptOrRefuseOrder(order *model.Order, isAcceptIt bool) + AcceptOrRefuseOrder(order *model.GoodsOrder, isAcceptIt bool) } var ( @@ -46,7 +46,7 @@ func init() { type OrderController struct { } -func (c *OrderController) OnOrderNew(purchasePlatform PurchasePlatformHandler, order *model.Order, orderSkus []*model.OrderSku) (err error) { +func (c *OrderController) OnOrderNew(purchasePlatform PurchasePlatformHandler, order *model.GoodsOrder, orderSkus []*model.OrderSku) (err error) { db := orm.NewOrm() c.handleAutoAcceptOrder(order.VendorOrderID, order.VendorID, order.ConsigneeMobile, order.StoreID, db, func(isAccept bool) { // purchasePlatform.AcceptOrRefuseOrder(order, isAccept) @@ -62,6 +62,7 @@ func (c *OrderController) OnOrderNew(purchasePlatform PurchasePlatformHandler, o err = c.updateOrderSkuOtherInfo(orderSkus, db) if err == nil { db.Begin() + // globals.SugarLogger.Debugf("new order:%v", order) created, _, err2 := db.ReadOrCreate(order, "VendorOrderID", "VendorID") err = err2 if err == nil { @@ -71,17 +72,18 @@ func (c *OrderController) OnOrderNew(purchasePlatform PurchasePlatformHandler, o params := []interface{}{} for _, sku := range orderSkus { if sql == "" { - sql = "INSERT INTO order_sku(vendor_order_id, vendor_id, count, sku_id, vendor_sku_id, sku_name, shop_price, sale_price) VALUES(?, ?, ?, ?, ?, ?, ?, ?)" + sql = "INSERT INTO order_sku(vendor_order_id, vendor_id, count, sku_id, vendor_sku_id, sku_name, shop_price, sale_price, order_created_at) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?)" } else { - sql += ",(?, ?, ?, ?, ?, ?, ?, ?)" + sql += ",(?, ?, ?, ?, ?, ?, ?, ?, ?)" } - params = append(params, sku.VendorOrderID, sku.VendorID, sku.Count, sku.SkuID, sku.VendorSkuID, sku.SkuName, sku.ShopPrice, sku.SalePrice) + params = append(params, sku.VendorOrderID, sku.VendorID, sku.Count, sku.SkuID, sku.VendorSkuID, sku.SkuName, sku.ShopPrice, sku.SalePrice, order.OrderCreatedAt) } sql += ";" _, err = db.Raw(sql, params...).Exec() if err != nil { db.Rollback() + baseapi.SugarLogger.Infof("insert order_sku error:%v", err) } else { db.Commit() } @@ -91,26 +93,28 @@ func (c *OrderController) OnOrderNew(purchasePlatform PurchasePlatformHandler, o } } else { db.Rollback() + globals.SugarLogger.Warnf("create order:%v, error:%v", order, err) } } } return err } -func (c *OrderController) OnOrderAdjust(purchasePlatform PurchasePlatformHandler, order *model.Order, orderSkus []*model.OrderSku) (err error) { +func (c *OrderController) OnOrderAdjust(purchasePlatform PurchasePlatformHandler, order *model.GoodsOrder, orderSkus []*model.OrderSku) (err error) { db := orm.NewOrm() + 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_sku") + }, "OnAdjustOrder delete order") if err != nil { return err } err = utils.CallFuncLogError(func() error { - _, err := db.Raw("DELETE FROM 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") + }, "OnAdjustOrder delete order_sku") if err != nil { return err } @@ -175,7 +179,7 @@ func (c *OrderController) updateOrderSkuOtherInfo(orderSkus []*model.OrderSku, d return nil } -func (c *OrderController) updateOrderOtherInfo(order *model.Order, db orm.Ormer) (err error) { +func (c *OrderController) updateOrderOtherInfo(order *model.GoodsOrder, db orm.Ormer) (err error) { return nil } @@ -214,14 +218,14 @@ func (c *OrderController) handleAutoAcceptOrder(orderID string, vendorID int, us } func (c *OrderController) addOrderStatus(msg *model.OrderStatus) (err error) { - order := &model.Order{ + order := &model.GoodsOrder{ VendorOrderID: msg.VendorOrderID, VendorID: msg.VendorID, } db := orm.NewOrm() value, ok := OrderMap.Load(ComposeUniversalOrderID(msg.VendorOrderID, msg.VendorID)) if !ok { - globals.SugarLogger.Warnf("can not get order:%v, from cache", order) + // globals.SugarLogger.Infof("can not get order:%v, from cache", order) err = db.Read(order, "VendorOrderID", "VendorID") } else { order.ID = value.(int64) diff --git a/business/controller/waybill.go b/business/controller/waybill.go index 10993c27e..c5b07a443 100644 --- a/business/controller/waybill.go +++ b/business/controller/waybill.go @@ -21,6 +21,7 @@ const ( ) type WaybillController struct { + OrderController } var ( @@ -36,6 +37,8 @@ func (w *WaybillController) OnWaybillNew(bill *model.Waybill) (err error) { if !created { baseapi.SugarLogger.Warnf("duplicated waybill:%v msg received", bill) } + } else { + globals.SugarLogger.Warnf("create bill:%v, error:%v", bill, err) } return err } @@ -83,7 +86,7 @@ func (w *WaybillController) addWaybillStatus(msg *model.OrderStatus) (err error) db := orm.NewOrm() value, ok := OrderMap.Load(ComposeUniversalOrderID(msg.VendorOrderID, msg.VendorID)) if !ok { - globals.SugarLogger.Warnf("can not get order:%v, from cache", order) + // globals.SugarLogger.Infof("can not get order:%v, from cache", order) err = db.Read(order, "VendorWaybillID", "WaybillVendorID") } else { order.ID = value.(int64) diff --git a/business/model/order.go b/business/model/order.go index cb9d5f153..a80094589 100644 --- a/business/model/order.go +++ b/business/model/order.go @@ -7,7 +7,7 @@ type ModelTimeInfo struct { UpdatedAt time.Time `orm:"auto_now;type(datetime)"` } -type Order struct { +type GoodsOrder struct { ID int64 `orm:"column(id)"` VendorOrderID string `orm:"column(vendor_order_id);size(48)"` VendorID int `orm:"column(vendor_id)"` @@ -26,14 +26,14 @@ type Order struct { VendorStatus string `orm:"size(16)"` LockStatus int CancelApplyReason string `orm:"size(255);null;default(null)"` // null表示没有申请,不为null表示用户正在取消申请 - WaybillVendorID int `orm:"column(waybill_vendor_id)"` + WaybillVendorID int `orm:"column(waybill_vendor_id);default(-1)"` OriginalData string `orm:"type(text)"` OrderCreatedAt time.Time `orm:"type(datetime);index"` - OrderFinishedAt time.Time `orm:"type(datetime)"` + OrderFinishedAt time.Time `orm:"type(datetime);null;default(null)"` ModelTimeInfo } -func (o *Order) TableUnique() [][]string { +func (o *GoodsOrder) TableUnique() [][]string { return [][]string{ []string{"VendorOrderID", "VendorID"}, } @@ -44,7 +44,7 @@ type OrderSku struct { VendorOrderID string `orm:"column(vendor_order_id);size(48)"` VendorID int `orm:"column(vendor_id)"` Count int - VendorSkuID string `orm:"column(vendor_sku_id),size(48)"` + VendorSkuID string `orm:"column(vendor_sku_id);size(48)"` SkuID int `orm:"column(sku_id)"` // 外部系统里记录的 jxskuid JxSkuID int `orm:"column(jx_sku_id)"` // 根据VendorSkuID在本地系统里查询出来的 jxskuid SkuName string `orm:"size(255)"` @@ -53,7 +53,9 @@ type OrderSku struct { OrderCreatedAt time.Time `orm:"type(datetime);index"` } -func (o *OrderSku) TableUnique() [][]string { +// 同样商品在一个定单中可能重复出现(比如搞活动时,相同商品价格不一样,第一个有优惠) +// 所以这里不能用唯一索引 +func (o *OrderSku) TableIndex() [][]string { return [][]string{ []string{"VendorOrderID", "SkuID", "VendorID"}, } @@ -72,7 +74,7 @@ type Waybill struct { VendorStatus string `orm:"size(16)"` ActualFee int64 WaybillCreatedAt time.Time `orm:"type(datetime);index"` - WaybillFinishedAt time.Time `orm:"type(datetime)"` + WaybillFinishedAt time.Time `orm:"type(datetime);null;default(null)"` ModelTimeInfo } diff --git a/controllers/dada_order.go b/controllers/dada_order.go index c58bbea17..668e816bd 100644 --- a/controllers/dada_order.go +++ b/controllers/dada_order.go @@ -26,6 +26,11 @@ func (c *DadaOrderController) OrderStatusChanged() { if callbackResponse == nil { cc := &controller.OrderController{} callbackResponse = cc.OrderStatusChanged(obj) + + // utils.CallFuncAsync(func() { + // cc2 := &dada.WaybillController{} + // cc2.OnWaybillMsg(obj) + // }) } if callbackResponse.Code != 200 { c.CustomAbort(callbackResponse.Code, string(utils.MustMarshal(callbackResponse))) diff --git a/controllers/elm_order.go b/controllers/elm_order.go index bfdc0ebec..91ee2802f 100644 --- a/controllers/elm_order.go +++ b/controllers/elm_order.go @@ -27,6 +27,11 @@ func (c *ELMOrderController) MsgPost() { if callbackResponse == nil { cc := &controller.OrderController{} callbackResponse = cc.OrderMessage(obj) + + // utils.CallFuncAsync(func() { + // cc2 := &elm.Controller{} + // cc2.OnCallbackMsg(obj) + // }) } c.Data["json"] = callbackResponse c.ServeJSON() diff --git a/controllers/jd_order.go b/controllers/jd_order.go index 8e580e34c..ce86be4d4 100644 --- a/controllers/jd_order.go +++ b/controllers/jd_order.go @@ -1,6 +1,7 @@ package controllers import ( + "git.rosy.net.cn/baseapi/platformapi/jdapi" "git.rosy.net.cn/jx-callback/globals/api" "git.rosy.net.cn/jx-callback/legacy/jd/controller" "github.com/astaxie/beego" @@ -23,11 +24,23 @@ func (c *JDOrderController) URLMapping() { c.Mapping("PushDeliveryStatus", c.PushDeliveryStatus) } -func (c *JDOrderController) orderStatus() { - obj, callbackResponse := api.Jdapi.GetOrderCallbackMsg(c.Ctx.Input.RequestBody) +func (c *JDOrderController) orderStatus(isCancelOrder bool) { + var obj *jdapi.CallbackOrderMsg + var callbackResponse *jdapi.CallbackResponse + + if isCancelOrder { + obj, callbackResponse = api.JdAPI.GetOrderApplyCancelCallbackMsg(c.Ctx.Input.RequestBody) + } else { + obj, callbackResponse = api.JdAPI.GetOrderCallbackMsg(c.Ctx.Input.RequestBody) + } if callbackResponse == nil { cc := controller.OrderController{} callbackResponse = cc.OrderStatus(obj) + + // utils.CallFuncAsync(func() { + // cc2 := &jd.OrderController{} + // cc2.OnOrderMsg(obj) + // }) } c.Data["json"] = callbackResponse c.ServeJSON() @@ -40,7 +53,7 @@ func (c *JDOrderController) orderStatus() { // @Failure 403 body is empty // @router /newOrder [post] func (c *JDOrderController) NewOrder() { - c.orderStatus() + c.orderStatus(false) } // @Title AdjustOrder @@ -50,7 +63,7 @@ func (c *JDOrderController) NewOrder() { // @Failure 403 body is empty // @router /orderAdjust [post] func (c *JDOrderController) OrderAdjust() { - c.orderStatus() + c.orderStatus(false) } // @Title orderWaitOutStore @@ -60,7 +73,7 @@ func (c *JDOrderController) OrderAdjust() { // @Failure 403 body is empty // @router /orderWaitOutStore [post] func (c *JDOrderController) OrderWaitOutStore() { - c.orderStatus() + c.orderStatus(false) } // @Title pickFinishOrder @@ -70,7 +83,7 @@ func (c *JDOrderController) OrderWaitOutStore() { // @Failure 403 body is empty // @router /pickFinishOrder [post] func (c *JDOrderController) PickFinishOrder() { - c.orderStatus() + c.orderStatus(false) } // @Title deliveryOrder @@ -80,7 +93,7 @@ func (c *JDOrderController) PickFinishOrder() { // @Failure 403 body is empty // @router /deliveryOrder [post] func (c *JDOrderController) DeliveryOrder() { - c.orderStatus() + c.orderStatus(false) } // @Title finishOrder @@ -90,7 +103,7 @@ func (c *JDOrderController) DeliveryOrder() { // @Failure 403 body is empty // @router /finishOrder [post] func (c *JDOrderController) FinishOrder() { - c.orderStatus() + c.orderStatus(false) } // @Title lockOrder @@ -100,7 +113,7 @@ func (c *JDOrderController) FinishOrder() { // @Failure 403 body is empty // @router /lockOrder [post] func (c *JDOrderController) LockOrder() { - c.orderStatus() + c.orderStatus(false) } // @Title userCancelOrder @@ -110,7 +123,7 @@ func (c *JDOrderController) LockOrder() { // @Failure 403 body is empty // @router /userCancelOrder [post] func (c *JDOrderController) UserCancelOrder() { - c.orderStatus() + c.orderStatus(false) } // @Title applyCancelOrder @@ -120,13 +133,7 @@ func (c *JDOrderController) UserCancelOrder() { // @Failure 403 body is empty // @router /applyCancelOrder [post] func (c *JDOrderController) ApplyCancelOrder() { - obj, callbackResponse := api.Jdapi.GetOrderApplyCancelCallbackMsg(c.Ctx.Input.RequestBody) - if callbackResponse == nil { - cc := controller.OrderController{} - callbackResponse = cc.OrderStatus(obj) - } - c.Data["json"] = callbackResponse - c.ServeJSON() + c.orderStatus(true) } // @Title pushDeliveryStatus @@ -136,10 +143,15 @@ func (c *JDOrderController) ApplyCancelOrder() { // @Failure 403 body is empty // @router /pushDeliveryStatus [post] func (c *JDOrderController) PushDeliveryStatus() { - obj, callbackResponse := api.Jdapi.GetOrderDeliveryCallbackMsg(c.Ctx.Input.RequestBody) + obj, callbackResponse := api.JdAPI.GetOrderDeliveryCallbackMsg(c.Ctx.Input.RequestBody) if callbackResponse == nil { cc := controller.OrderController{} callbackResponse = cc.OrderDeliveryStatus(obj) + + // utils.CallFuncAsync(func() { + // cc2 := &jd.WaybillController{} + // cc2.OnWaybillMsg(obj) + // }) } c.Data["json"] = callbackResponse c.ServeJSON() @@ -152,5 +164,5 @@ func (c *JDOrderController) PushDeliveryStatus() { // @Failure 403 body is empty // @router /orderCommentPush [post] func (c *JDOrderController) OrderComment() { - c.orderStatus() + c.orderStatus(false) } diff --git a/controllers/mtps_order.go b/controllers/mtps_order.go index 3dda3b4ff..7555ea165 100644 --- a/controllers/mtps_order.go +++ b/controllers/mtps_order.go @@ -26,6 +26,11 @@ func (c *MTPSOrderController) Status() { if callbackResponse == nil { cc := &controller.OrderController{} callbackResponse = cc.OrderStatusChanged(obj) + + // utils.CallFuncAsync(func() { + // cc2 := &mtps.WaybillController{} + // cc2.OnWaybillMsg(obj) + // }) } c.Data["json"] = callbackResponse c.ServeJSON() @@ -41,6 +46,11 @@ func (c *MTPSOrderController) Except() { if callbackResponse == nil { cc := &controller.OrderController{} callbackResponse = cc.OrderException(obj) + + // utils.CallFuncAsync(func() { + // cc2 := &mtps.WaybillController{} + // cc2.OnWaybillExcept(obj) + // }) } c.Data["json"] = callbackResponse c.ServeJSON() diff --git a/globals/api/api.go b/globals/api/api.go index e3912c0ef..37e7d4e5a 100644 --- a/globals/api/api.go +++ b/globals/api/api.go @@ -14,7 +14,7 @@ import ( ) var ( - Jdapi *jdapi.API + JdAPI *jdapi.API ElmAPI *elmapi.API MtpsAPI *mtpsapi.API DadaAPI *dadaapi.API @@ -22,7 +22,7 @@ var ( ) func init() { - Jdapi = jdapi.New(beego.AppConfig.String("jdToken"), beego.AppConfig.String("jdAppKey"), beego.AppConfig.String("jdSecret")) + 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")) DadaAPI = dadaapi.New(beego.AppConfig.String("dadaAppKey"), beego.AppConfig.String("dadaAppSecret"), beego.AppConfig.String("dadaSourceID"), beego.AppConfig.String("dadaCallbackURL"), beego.AppConfig.DefaultBool("dadaIsProd", false)) diff --git a/globals/globals.go b/globals/globals.go index d68ad9fd9..647e05777 100644 --- a/globals/globals.go +++ b/globals/globals.go @@ -2,6 +2,7 @@ package globals import ( "git.rosy.net.cn/baseapi" + "git.rosy.net.cn/jx-callback/business/model" "git.rosy.net.cn/jx-callback/legacy/models" "github.com/astaxie/beego" "github.com/astaxie/beego/logs" @@ -32,10 +33,10 @@ func initDB() { // set default database orm.RegisterDataBase("default", "mysql", beego.AppConfig.String("dbConnectStr"), 30) models.RegisterModels() - // orm.RegisterModel(new(model.Order)) - // orm.RegisterModel(new(model.OrderSku)) - // orm.RegisterModel(new(model.Waybill)) - // orm.RegisterModel(new(model.OrderStatus)) + orm.RegisterModel(new(model.GoodsOrder)) + orm.RegisterModel(new(model.OrderSku)) + orm.RegisterModel(new(model.Waybill)) + orm.RegisterModel(new(model.OrderStatus)) // create table orm.RunSyncdb("default", false, true) } diff --git a/legacy/jd/controller/order.go b/legacy/jd/controller/order.go index 661fdfbd5..4d1caa611 100644 --- a/legacy/jd/controller/order.go +++ b/legacy/jd/controller/order.go @@ -144,12 +144,12 @@ func (c *OrderController) OrderDeliveryStatus(jdOrderDeliveryStatusMsg *jdapi.Ca func OnNewOrder(msg *jdapi.CallbackOrderMsg, userMobile string, db orm.Ormer) { controllers.OnNewOrder(msg.BillID, controllers.JD_VENDORID, userMobile, 0, db, func(acceptIt bool) { globals.SugarLogger.Infof("OrderAcceptOperate billid:%v, acceptIt:%v", msg.BillID, acceptIt) - api.Jdapi.OrderAcceptOperate(msg.BillID, acceptIt) + api.JdAPI.OrderAcceptOperate(msg.BillID, acceptIt) }) } func newOrder(msg *jdapi.CallbackOrderMsg) error { - result, err := api.Jdapi.LegacyQuerySingleOrder(msg.BillID) + result, err := api.JdAPI.LegacyQuerySingleOrder(msg.BillID) userMobile := "" var db orm.Ormer if err == nil { diff --git a/main.go b/main.go index d77be3f7b..7d3c4b715 100644 --- a/main.go +++ b/main.go @@ -14,11 +14,10 @@ import ( func main() { if beego.BConfig.RunMode == "prod" { controller.InitOrder() + tasks.RefreshWeixinToken() + tasks.RefreshElmToken() } - tasks.RefreshWeixinToken() - tasks.RefreshElmToken() - if beego.BConfig.RunMode == "dev" { beego.BConfig.WebConfig.DirectoryIndex = true beego.BConfig.WebConfig.StaticDir["/swagger"] = "swagger"