- use auto router for callback msg.

- first normal demo api FinishedPickup added.
This commit is contained in:
gazebo
2018-08-20 15:08:36 +08:00
parent eeeab319fa
commit b69bac1182
16 changed files with 154 additions and 889 deletions

View File

@@ -1,183 +1,88 @@
package controllers
import (
"net/http"
"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 {
type DjswController 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 *DjswController) orderStatus(isCancelOrder bool) {
if c.Ctx.Input.Method() == http.MethodPost {
var obj *jdapi.CallbackOrderMsg
var callbackResponse *jdapi.CallbackResponse
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)
if isCancelOrder {
obj, callbackResponse = api.JdAPI.GetOrderApplyCancelCallbackMsg(c.Ctx.Input.RequestBody)
} else {
obj, callbackResponse = api.JdAPI.GetOrderCallbackMsg(c.Ctx.Input.RequestBody)
}
if callbackResponse == nil {
callbackResponse = jd.OnOrderMsg(obj)
}
c.Data["json"] = callbackResponse
c.ServeJSON()
} else {
obj, callbackResponse = api.JdAPI.GetOrderCallbackMsg(c.Ctx.Input.RequestBody)
c.Abort("404")
}
if callbackResponse == nil {
if globals.CallLegacyMsgHandler {
cc := controller.OrderController{}
callbackResponse = cc.OrderStatus(obj)
}
if globals.CallNewMsgHandler {
if globals.CallLegacyMsgHandler {
utils.CallFuncAsync(func() {
jd.OnOrderMsg(obj)
})
} else {
callbackResponse = jd.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() {
func (c *DjswController) 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() {
func (c *DjswController) 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() {
func (c *DjswController) 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() {
func (c *DjswController) 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() {
func (c *DjswController) 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() {
func (c *DjswController) 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() {
func (c *DjswController) 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() {
func (c *DjswController) 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() {
func (c *DjswController) 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 {
if globals.CallLegacyMsgHandler {
utils.CallFuncAsync(func() {
jd.OnWaybillMsg(obj)
})
} else {
callbackResponse = jd.OnWaybillMsg(obj)
}
func (c *DjswController) PushDeliveryStatus() {
if c.Ctx.Input.Method() == http.MethodPost {
obj, callbackResponse := api.JdAPI.GetOrderDeliveryCallbackMsg(c.Ctx.Input.RequestBody)
if callbackResponse == nil {
callbackResponse = jd.OnWaybillMsg(obj)
}
c.Data["json"] = callbackResponse
c.ServeJSON()
} else {
c.Abort("404")
}
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() {
func (c *DjswController) OrderCommentPush() {
c.orderStatus(false)
}