Files
jx-callback/controllers/jx_order.go
gazebo 0b9189cb87 - paging added for GetStoreOrderInfo.
- GetStoreOrderCountInfo added.
2018-08-22 09:41:02 +08:00

191 lines
6.1 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 "最近多少小时的信息"
// @Success 200 {object} business.model.CallResult
// @Failure 200 {object} business.model.CallResult
// @router /GetStoreOrderCountInfo [get]
func (c *OrderController) GetStoreOrderCountInfo() {
var (
storeID string
lastHours int
err error
)
storeID = c.GetString("storeID")
lastHours, err1 := c.GetInt("lastHours", 0)
if storeID != "" && err1 == nil {
result, err2 := orderman.FixedOrderManager.GetStoreOrderCountInfo(storeID, lastHours)
if err = err2; err == nil {
c.Data["json"] = &model.CallResult{
Code: "0",
Data: string(utils.MustMarshal(result)),
}
}
}
errMsg := jxutils.Errs2Str("", err1, err)
if storeID == "" {
errMsg += "storeID is empty\n"
}
if errMsg != "" {
c.Data["json"] = &model.CallResult{
Code: "-1",
Desc: errMsg,
}
}
c.ServeJSON()
}
// @Title 得到门店订单状态信息
// @Description 得到门店订单状态信息
// @Param storeID query string true "京西门店ID"
// @Param lastHours query int false "最近多少小时的信息"
// @Param fromStatus query int true "起始状态"
// @Param toStatus query int false "起始状态"
// @Param offset query int false "起始状态"
// @Param pageSize 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, offset, pageSize 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)
offset, err4 := c.GetInt("offset", 0)
pageSize, err5 := c.GetInt("pageSize", 0)
if storeID != "" && err1 == nil && err2 == nil && err3 == nil && err4 == nil && err5 == nil {
result, err2 := orderman.FixedOrderManager.GetStoreOrderInfo(storeID, lastHours, fromStatus, toStatus, offset, pageSize)
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)
})
}