Files
jx-callback/controllers/jd_order.go
2018-08-17 13:59:15 +08:00

186 lines
5.4 KiB
Go

package controllers
import (
"git.rosy.net.cn/baseapi/platformapi/jdapi"
"git.rosy.net.cn/baseapi/utils"
"git.rosy.net.cn/jx-callback/business/partner/purchase/jd"
"git.rosy.net.cn/jx-callback/globals"
"git.rosy.net.cn/jx-callback/globals/api"
"git.rosy.net.cn/jx-callback/legacy/jd/controller"
"github.com/astaxie/beego"
)
// Operations about JDOrder
type JDOrderController struct {
beego.Controller
}
func (c *JDOrderController) URLMapping() {
c.Mapping("NewOrder", c.NewOrder)
c.Mapping("OrderAdjust", c.OrderAdjust)
c.Mapping("OrderWaitOutStore", c.OrderWaitOutStore)
c.Mapping("PickFinishOrder", c.PickFinishOrder)
c.Mapping("DeliveryOrder", c.DeliveryOrder)
c.Mapping("LockOrder", c.LockOrder)
c.Mapping("UserCancelOrder", c.UserCancelOrder)
c.Mapping("ApplyCancelOrder", c.ApplyCancelOrder)
c.Mapping("PushDeliveryStatus", c.PushDeliveryStatus)
}
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 {
if globals.CallLegacyMsgHandler {
cc := controller.OrderController{}
callbackResponse = cc.OrderStatus(obj)
}
if globals.CallNewMsgHandler {
cc2 := &jd.OrderController{}
if globals.CallLegacyMsgHandler {
utils.CallFuncAsync(func() {
cc2.OnOrderMsg(obj)
})
} else {
callbackResponse = cc2.OnOrderMsg(obj)
}
}
}
c.Data["json"] = callbackResponse
c.ServeJSON()
}
// @Title newOrder
// @Description create object
// @Param jd_param_json formData string true "应用级别输入参数"
// @Success 200 {string} models.Object.Id
// @Failure 403 body is empty
// @router /newOrder [post]
func (c *JDOrderController) NewOrder() {
c.orderStatus(false)
}
// @Title AdjustOrder
// @Description create object
// @Param jd_param_json formData string true "应用级别输入参数"
// @Success 200 {string} models.Object.Id
// @Failure 403 body is empty
// @router /orderAdjust [post]
func (c *JDOrderController) OrderAdjust() {
c.orderStatus(false)
}
// @Title orderWaitOutStore
// @Description create object
// @Param jd_param_json formData string true "应用级别输入参数"
// @Success 200 {string} models.Object.Id
// @Failure 403 body is empty
// @router /orderWaitOutStore [post]
func (c *JDOrderController) OrderWaitOutStore() {
c.orderStatus(false)
}
// @Title pickFinishOrder
// @Description create object
// @Param jd_param_json formData string true "应用级别输入参数"
// @Success 200 {string} models.Object.Id
// @Failure 403 body is empty
// @router /pickFinishOrder [post]
func (c *JDOrderController) PickFinishOrder() {
c.orderStatus(false)
}
// @Title deliveryOrder
// @Description create object
// @Param jd_param_json formData string true "应用级别输入参数"
// @Success 200 {string} models.Object.Id
// @Failure 403 body is empty
// @router /deliveryOrder [post]
func (c *JDOrderController) DeliveryOrder() {
c.orderStatus(false)
}
// @Title finishOrder
// @Description create object
// @Param jd_param_json formData string true "应用级别输入参数"
// @Success 200 {string} models.Object.Id
// @Failure 403 body is empty
// @router /finishOrder [post]
func (c *JDOrderController) FinishOrder() {
c.orderStatus(false)
}
// @Title lockOrder
// @Description create object
// @Param jd_param_json formData string true "应用级别输入参数"
// @Success 200 {string} models.Object.Id
// @Failure 403 body is empty
// @router /lockOrder [post]
func (c *JDOrderController) LockOrder() {
c.orderStatus(false)
}
// @Title userCancelOrder
// @Description create object
// @Param jd_param_json formData string true "应用级别输入参数"
// @Success 200 {string} models.Object.Id
// @Failure 403 body is empty
// @router /userCancelOrder [post]
func (c *JDOrderController) UserCancelOrder() {
c.orderStatus(false)
}
// @Title applyCancelOrder
// @Description create object
// @Param jd_param_json formData string true "应用级别输入参数"
// @Success 200 {string} models.Object.Id
// @Failure 403 body is empty
// @router /applyCancelOrder [post]
func (c *JDOrderController) ApplyCancelOrder() {
c.orderStatus(true)
}
// @Title pushDeliveryStatus
// @Description create object
// @Param jd_param_json formData string true "应用级别输入参数"
// @Success 200 {string} models.Object.Id
// @Failure 403 body is empty
// @router /pushDeliveryStatus [post]
func (c *JDOrderController) PushDeliveryStatus() {
obj, callbackResponse := api.JdAPI.GetOrderDeliveryCallbackMsg(c.Ctx.Input.RequestBody)
if callbackResponse == nil {
if globals.CallLegacyMsgHandler {
cc := controller.OrderController{}
callbackResponse = cc.OrderDeliveryStatus(obj)
}
if globals.CallNewMsgHandler {
cc2 := &jd.WaybillController{}
if globals.CallLegacyMsgHandler {
utils.CallFuncAsync(func() {
cc2.OnWaybillMsg(obj)
})
} else {
callbackResponse = cc2.OnWaybillMsg(obj)
}
}
}
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(false)
}