149 lines
4.8 KiB
Go
149 lines
4.8 KiB
Go
package controllers
|
|
|
|
import (
|
|
"git.rosy.net.cn/baseapi/utils"
|
|
"git.rosy.net.cn/jx-callback/business/jxcallback/orderman"
|
|
"git.rosy.net.cn/jx-callback/business/jxcallback/scheduler/basesch"
|
|
"git.rosy.net.cn/jx-callback/business/jxutils"
|
|
"git.rosy.net.cn/jx-callback/business/model"
|
|
"github.com/astaxie/beego"
|
|
)
|
|
|
|
type OrderController struct {
|
|
beego.Controller
|
|
}
|
|
|
|
func (c *OrderController) URLMapping() {
|
|
c.Mapping("FinishedPickup", c.FinishedPickup)
|
|
c.Mapping("GetStoreOrderInfo", c.GetStoreOrderInfo)
|
|
c.Mapping("GetOrderSkuInfo", c.GetOrderSkuInfo)
|
|
c.Mapping("CreateWaybillOnProviders", c.CreateWaybillOnProviders)
|
|
c.Mapping("Swtich2SelfDeliver", c.Swtich2SelfDeliver)
|
|
}
|
|
|
|
func (c *OrderController) orderOperate(handler func(vendorOrderID string, vendorID int) (interface{}, error)) {
|
|
var (
|
|
vendorOrderID string
|
|
vendorID int
|
|
err error
|
|
)
|
|
vendorOrderID = c.GetString("vendorOrderID")
|
|
vendorID, err1 := c.GetInt("vendorID", 0)
|
|
if vendorOrderID != "" && err1 == nil {
|
|
result, err2 := handler(vendorOrderID, vendorID)
|
|
if err = err2; err == nil {
|
|
retObj := &model.CallResult{
|
|
Code: "0",
|
|
}
|
|
if result != nil {
|
|
retObj.Data = string(utils.MustMarshal(result))
|
|
}
|
|
c.Data["json"] = retObj
|
|
}
|
|
}
|
|
errMsg := jxutils.Errs2Str("", err1, err)
|
|
if vendorOrderID == "" {
|
|
errMsg += "vendorOrderID is empty\n"
|
|
}
|
|
if errMsg != "" {
|
|
c.Data["json"] = &model.CallResult{
|
|
Code: "-1",
|
|
Data: errMsg,
|
|
}
|
|
}
|
|
c.ServeJSON()
|
|
}
|
|
|
|
// @Title 完成拣货
|
|
// @Description 完成拣货
|
|
// @Param vendorOrderID formData string true "订单ID"
|
|
// @Param vendorID formData int true "订单所属的厂商ID"
|
|
// @Success 200 {object} business.model.CallResult
|
|
// @Failure 200 {object} business.model.CallResult
|
|
// @router /FinishedPickup [post]
|
|
func (c *OrderController) FinishedPickup() {
|
|
c.orderOperate(func(vendorOrderID string, vendorID int) (interface{}, error) {
|
|
return nil, basesch.FixedBaseScheduler.PickupGoodsAndUpdateStatus(vendorOrderID, vendorID)
|
|
})
|
|
}
|
|
|
|
// @Title 转自送
|
|
// @Description 转自送
|
|
// @Param vendorOrderID formData string true "订单ID"
|
|
// @Param vendorID formData int true "订单所属的厂商ID"
|
|
// @Success 200 {object} business.model.CallResult
|
|
// @Failure 200 {object} business.model.CallResult
|
|
// @router /Swtich2SelfDeliver [post]
|
|
func (c *OrderController) Swtich2SelfDeliver() {
|
|
c.orderOperate(func(vendorOrderID string, vendorID int) (interface{}, error) {
|
|
return nil, basesch.FixedBaseScheduler.Swtich2SelfDeliverAndUpdateStatus(vendorOrderID, vendorID)
|
|
})
|
|
}
|
|
|
|
// @Title 创建三方运单
|
|
// @Description 创建三方运单
|
|
// @Param vendorOrderID formData string true "订单ID"
|
|
// @Param vendorID formData int true "订单所属的厂商ID"
|
|
// @Success 200 {object} business.model.CallResult
|
|
// @Failure 200 {object} business.model.CallResult
|
|
// @router /CreateWaybillOnProviders [post]
|
|
func (c *OrderController) CreateWaybillOnProviders() {
|
|
c.orderOperate(func(vendorOrderID string, vendorID int) (interface{}, error) {
|
|
return basesch.FixedBaseScheduler.CreateWaybillOnProviders(vendorOrderID, vendorID)
|
|
})
|
|
}
|
|
|
|
// @Title 得到门店订单信息
|
|
// @Description 得到门店订单信息
|
|
// @Param storeID query string true "京西门店ID"
|
|
// @Param lastHours query int false "最近多少小时的信息"
|
|
// @Param fromStatus query int true "起始状态"
|
|
// @Param toStatus query int false "起始状态"
|
|
// @Success 200 {object} business.model.CallResult
|
|
// @Failure 200 {object} business.model.CallResult
|
|
// @router /GetStoreOrderInfo [get]
|
|
func (c *OrderController) GetStoreOrderInfo() {
|
|
var (
|
|
storeID string
|
|
lastHours, fromStatus, toStatus int
|
|
err error
|
|
)
|
|
storeID = c.GetString("storeID")
|
|
lastHours, err1 := c.GetInt("lastHours", 0)
|
|
fromStatus, err2 := c.GetInt("fromStatus", 0)
|
|
toStatus, err3 := c.GetInt("toStatus", 0)
|
|
if storeID != "" && err1 == nil && err2 == nil && err3 == nil {
|
|
result, err2 := orderman.FixedOrderManager.GetStoreOrderInfo(storeID, lastHours, fromStatus, toStatus)
|
|
if err = err2; err == nil {
|
|
c.Data["json"] = &model.CallResult{
|
|
Code: "0",
|
|
Data: string(utils.MustMarshal(result)),
|
|
}
|
|
}
|
|
}
|
|
errMsg := jxutils.Errs2Str("", err1, err2, err3, err)
|
|
if storeID == "" {
|
|
errMsg += "storeID is empty\n"
|
|
}
|
|
if errMsg != "" {
|
|
c.Data["json"] = &model.CallResult{
|
|
Code: "-1",
|
|
Desc: errMsg,
|
|
}
|
|
}
|
|
c.ServeJSON()
|
|
}
|
|
|
|
// @Title 得到订单SKU信息
|
|
// @Description 得到订单SKU信息
|
|
// @Param vendorOrderID query string true "订单ID"
|
|
// @Param vendorID query int true "订单所属的厂商ID"
|
|
// @Success 200 {object} business.model.CallResult
|
|
// @Failure 200 {object} business.model.CallResult
|
|
// @router /GetOrderSkuInfo [get]
|
|
func (c *OrderController) GetOrderSkuInfo() {
|
|
c.orderOperate(func(vendorOrderID string, vendorID int) (interface{}, error) {
|
|
return orderman.FixedOrderManager.GetOrderSkuInfo(vendorOrderID, vendorID)
|
|
})
|
|
}
|