From bcc95475dbb1c483cde4c3814e5501ca1587241d Mon Sep 17 00:00:00 2001 From: gazebo Date: Fri, 29 Jun 2018 11:33:09 +0800 Subject: [PATCH] - add jd order comment msg. --- business/freshfood/freshfood.go | 27 +++++++++++++++------ business/jd/controller/order.go | 43 ++++++++++++++++++--------------- controllers/jd_order.go | 10 ++++++++ 3 files changed, 52 insertions(+), 28 deletions(-) diff --git a/business/freshfood/freshfood.go b/business/freshfood/freshfood.go index 56ab56eed..5b177c7fe 100644 --- a/business/freshfood/freshfood.go +++ b/business/freshfood/freshfood.go @@ -18,8 +18,10 @@ import ( const ( URL_FRESHFOOD_ORDER_CREATE_JDDJ = "order" URL_FRESHFOOD_ORDER_STATUS = "order/status" - URL_FRESHFOOD_DELIVERY_STATUS = "delivery/status" - URL_FRESHFOOD_ORDER_MODIFY = "order/modify" + URL_FRESHFOOD_ORDER_COMMENT = "jddj/pushordercomments" + + URL_FRESHFOOD_DELIVERY_STATUS = "delivery/status" + URL_FRESHFOOD_ORDER_MODIFY = "order/modify" URL_FRESHFOOD_ELEME_TOKENUPDATE = "eleme/token/update" URL_FRESHFOOD_ORDER_CREATE_ELEME = "order/eleme" @@ -142,18 +144,27 @@ func (f *FreshFoodAPI) NewJDOrder(jdorder *models.Jdorder, isNew bool) error { return f.AccessFreshFood(URL_FRESHFOOD_ORDER_MODIFY, params) } -// todo venderId -func (f *FreshFoodAPI) JDOrderStatus(jdorder *models.Jdorder) error { +func (f *FreshFoodAPI) JDOrderStatus(msg *jdapi.CallbackOrderMsg) error { params := make(url.Values) params.Set(URL_FRESHFOOD_PARA_VENDERID, utils.Int2Str(JD_VENDERID)) - params.Set(URL_FRESHFOOD_PARA_ORDERID, utils.Int64ToStr(jdorder.JdOrderID)) - params.Set(URL_FRESHFOOD_PARA_ORDERSTATUS, utils.Int2Str(jdorder.OrderStatus)) - params.Set(URL_FRESHFOOD_PARA_ORDERSTATUSTIME, jdorder.OrderStatusTime) - params.Set(URL_FRESHFOOD_PARA_CITYNAME, jdorder.CityName) + params.Set(URL_FRESHFOOD_PARA_ORDERID, msg.BillID) + params.Set(URL_FRESHFOOD_PARA_ORDERSTATUS, msg.StatusID) + params.Set(URL_FRESHFOOD_PARA_ORDERSTATUSTIME, msg.Timestamp) + params.Set(URL_FRESHFOOD_PARA_CITYNAME, "all") return f.AccessFreshFood(URL_FRESHFOOD_ORDER_STATUS, params) } +func (f *FreshFoodAPI) JDOrderComment(msg *jdapi.CallbackOrderMsg) error { + params := make(url.Values) + params.Set(URL_FRESHFOOD_PARA_VENDERID, utils.Int2Str(JD_VENDERID)) + params.Set(URL_FRESHFOOD_PARA_ORDERID, msg.BillID) + params.Set(URL_FRESHFOOD_PARA_ORDERSTATUS, msg.StatusID) + params.Set(URL_FRESHFOOD_PARA_ORDERSTATUSTIME, msg.Timestamp) + + return f.AccessFreshFood(URL_FRESHFOOD_ORDER_COMMENT, params) +} + func (f *FreshFoodAPI) JDOrderDeliveryStatus(jdOrderDeliveryStatusMsg *jdapi.CallbackDeliveryStatusMsg) error { params := make(url.Values) cityName := "all" diff --git a/business/jd/controller/order.go b/business/jd/controller/order.go index 55c2a0bd3..4a69b7fbb 100644 --- a/business/jd/controller/order.go +++ b/business/jd/controller/order.go @@ -194,28 +194,31 @@ func adjustOrder(order *jdapi.CallbackOrderMsg) error { return newOrder(order) } -func normalOrderStatus(order *jdapi.CallbackOrderMsg) error { - db := orm.NewOrm() - rec := &models.Jdorder{ - JdOrderID: utils.Str2Int64(order.BillID), - } - - err := db.Read(rec, "JdOrderId") - if err != nil { - globals.SugarLogger.Warnf("error when accessing db:%v", err) +func normalOrderStatus(msg *jdapi.CallbackOrderMsg) (err error) { + if msg.StatusID == jdapi.OrderStatusAddComment || msg.StatusID == jdapi.OrderStatusModifyComment { + err = globals2.FreshFoodAPI.JDOrderComment(msg) } else { - if rec.OrderStatus == utils.Str2Int(order.StatusID) { - globals.SugarLogger.Infof("Duplicate message order:%v", order) - } else { - rec.OrderStatus = utils.Str2Int(order.StatusID) - rec.OrderStatusTime = order.Timestamp + db := orm.NewOrm() + rec := &models.Jdorder{ + JdOrderID: utils.Str2Int64(msg.BillID), + } - if err = globals2.FreshFoodAPI.JDOrderStatus(rec); err == nil { - rec.Code = "0" - err = utils.CallFuncLogError(func() error { - _, err := db.Update(rec, "OrderStatus", "OrderStatusTime", "Code") - return err - }, globals2.ErrStrAccessDB) + err = db.Read(rec, "JdOrderId") + if err != nil { + globals.SugarLogger.Warnf("error when accessing db:%v", err) + } else { + if rec.OrderStatus == utils.Str2Int(msg.StatusID) { + globals.SugarLogger.Infof("Duplicate message msg:%v", msg) + } else { + if err = globals2.FreshFoodAPI.JDOrderStatus(msg); err == nil { + rec.OrderStatus = utils.Str2Int(msg.StatusID) + rec.OrderStatusTime = msg.Timestamp + rec.Code = "0" + err = utils.CallFuncLogError(func() error { + _, err := db.Update(rec, "OrderStatus", "OrderStatusTime", "Code") + return err + }, globals2.ErrStrAccessDB) + } } } } diff --git a/controllers/jd_order.go b/controllers/jd_order.go index 94ca380cf..899c20ba9 100644 --- a/controllers/jd_order.go +++ b/controllers/jd_order.go @@ -144,3 +144,13 @@ func (c *JDOrderController) PushDeliveryStatus() { c.Data["json"] = callbackResponse c.ServeJSON() } + +// @Title pushDeliveryStatus +// @Description create object +// @Param jd_param_json formData string true "应用级别输入参数" +// @Success 200 {string} models.Object.Id +// @Failure 403 body is empty +// @router /ordercommentpush [post] +func (c *JDOrderController) OrderComment() { + c.orderStatus() +}